问题标签 [getcustomattributes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何获取自定义属性?
我已经使用 2.0 框架尝试了以下代码并且我得到了一个属性,但是当我在紧凑框架上尝试这个时,它总是返回一个空数组。MSDN 文档说它支持,我做错了吗?
.net - VB.net 自定义属性值
我是自定义属性的新手,所以我想知道是否可以获取属性的值。我使用自定义属性的类中的属性示例是:
我正在尝试获取这些属性的值(即获取位置 = 378、长度 = 34 等)。我开始的循环看起来像这样:
这让我得到了所有属性的名称,但我不确定如何获取这些值。有任何想法吗?
干杯,
瑞安
code-access-security - 从网络共享加载的程序集上的 System.Type.GetCustomAttributes 未显示所有属性
我有一个托管 dll - repro.dll,其中包含装饰有 2 个属性的类 TestModuleCommand:System.ObsoleteAttribute 和 System.Management.Automation.CmdletAttribute(来自 Windows 7 中 GAC 中的 System.Management.Automation.dll)
如果将 repro.dll 放在本地目录中,我可以看到从 System.Type.GetCustomAttributes(false) 返回的两个属性。如果将 repro.dll 放在网络路径中,那么我只能看到一个属性(尽管我仍然可以通过 System.Reflection.CustomAttributeData.GetCustomAttributes(MemberInfo) 看到这两个属性)。这是不希望的——我想查看这两个属性(我知道实例化 CmdletAttribute 不会产生安全影响)。
根据我在网上找到的内容,我隐约知道 repro.dll(如果从网络位置加载)无法完全看到 SMAdll。我认为 CAS 允许我在 System.Management.Automation 中声明 CmdletAttribute 是安全的,但我无法弄清楚如何编写该声明。我在哪里可以阅读更多内容以完全了解正在发生的事情?欢迎任何智慧之言。
谢谢,
卢卡斯
PS。以下是任何人都可以在 powershell.exe 提示符下尝试的重现(在 Windows 7 中 - Add-Type cmdlet 在 PowerShell v2 中是新的):
c# - C# - Silverlight - 带有枚举的 CustomAttribute
我有以下课程:
该类编译得很好,但是当我用它装饰我的财产时:
编译器吐出:
Error 1 An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type C:\...\CompanyX.Modules.Home\HomeModule.cs 28 33 CompanyX.Modules.Home
.net - 在 .Net 中,为什么调用 Type.GetCustomAttributes(true) 时不返回接口上声明的属性?
在回答这个问题时,我尝试Type.GetCustomAttributes(true)
在一个实现接口的类上使用该接口定义了一个属性。我惊讶地发现GetCustomAttributes
没有返回接口上定义的属性。为什么不呢?接口不是继承链的一部分吗?
示例代码:
输出:无
c# - 自定义属性(例如显示名称)未与 GetCustomAttribute 一起列出
我有一些代码来定义自定义属性,然后读入代码,它无法工作。为了尝试解决问题,我返回并尝试使用 DisplayName,但是,我仍然遇到相同的问题 GetCustomAttribute 或 GetCustomAttributes 无法列出它们。我有一个下面的例子。
我在一个类中设置了一个 DisplayName 属性,例如...
然后我有一些代码来列出上面类中每个方法的 DisplayName 属性。
问题是没有列出 DisplayName 属性,上面的代码编译、运行并且不显示任何消息框。
我什至尝试将 for each 循环与 GetCustomAttributes 一起使用,再次列出每个方法的所有属性,从未列出 DisplayName 属性,但是,我确实获得了编译属性和其他此类系统属性。
有人知道我做错了什么吗?
更新 - 非常感谢 NerdFury 指出我使用的是方法而不是属性。一旦改变一切工作。
c# - 为什么 ICustomAttributeProvider.GetCustomAttributes() 返回 object[] 而不是 Attribute[]?
为什么ICustomAttributeProvider.GetCustomAttributes()
返回object[]
而不是Attribute[]
?
使用 mscorlib 和 System 程序集的实现时是否有任何情况ICustomAttributeProvider
会返回非类型的对象Attribute
?
c# - 如何反向解析自定义属性?
我有一个带有自定义属性的枚举,例如:
“前进”方式似乎很容易,带有一个枚举值,并使用反射、GetCustomAttributes 等获取自定义属性。
但我想要某种反向解析。有一个 char 值,我想有一个 enum 值可以使用。
就像是:
如果我将“A”作为值参数,它应该返回 EnumStatus.value1。
有任何想法吗?我不想制作额外的哈希表,推迟枚举。
太感谢了!
.net - 通过 linq 表达式从被覆盖的属性中获取属性
我正在尝试使用GetCustomAttributes()
来获取在属性上定义的属性。问题是该属性是一个被覆盖的属性,我无法弄清楚如何从表达式中提取被覆盖的属性。我只能弄清楚如何获得基类的。
这是一些代码
现在我正试图MyAttribute
摆脱抽象类。但我需要通过Expression
. 这是我一直在使用的:
不幸的是atts
,最终是空的。问题是menberType
最终是 forText.Content
而不是Abstract.Content
类。所以当我得到属性时,它什么也不返回。
c# - 为什么 MemberInfo.GetCustomAttributes(Type) 被定义为返回一个属性数组?
假设我有FieldInfo
,我可以通过两种方式进行:
没关系。
但是下面的返回[]
而不是Attribute
?
这个问题实际上与 MS 的设计选择无关。我的问题是我是否应该担心field.GetCustomAttributes
返回特定属性类型的多个项目?在什么情况下会发生这种情况?
我猜永远不可能。我想我应该在编写一些反射辅助函数时处理它。