【问题标题】:When are ParameterInfo.IsLcid or ParameterInfo.IsRetval true?ParameterInfo.IsLcid 或 ParameterInfo.IsRetval 何时为真?
【发布时间】:2012-07-31 06:48:39
【问题描述】:

我在 Google 搜索时在 Stack Overflow 中发现了这个问题,但它已被删除。所以我再次列出这个问题。

由于我在 BCL 中找不到 LcidAttributeRetvalAttribute,我猜 C# 没有提供对语言环境标识符参数和返回值参数的支持。

是吗?

谢谢大家。

【问题讨论】:

    标签: c# reflection


    【解决方案1】:

    它们与ParameterAttributes enumeration 相关联。它在元数据中用于方法的参数,只有编译器可以发出 [modopt]。

    我不知道有哪个编译器能真正做到这一点。我对背景有一个不错的猜测,这些属性也用于 IDL。这是一种用于 COM 和 RPC 的接口描述语言。拥有此选项可确保 .NET 元数据也可以描述以 IDL 编写并可以出现在类型库中的声明类型。

    [lcid] 属性是described here。它实际上并没有描述用法,我自己也从未使用过。不知道为什么要使用它。

    [retval] 属性是described here。在 COM 自动化方法声明中非常重要,它标记了返回方法值的参数。并被 Tlbimp.exe 之类的工具使用,它会重写方法以使该参数成为返回值类型。

    【讨论】:

      猜你喜欢
      • 2019-01-30
      • 2013-05-03
      • 2015-12-05
      • 2019-09-09
      • 2011-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-07
      相关资源
      最近更新 更多