草庐IT

ATTRIBUTES

全部标签

c# - .NET 默认值属性

我听说人们对DefaultValue属性有一些不同的说法,包括:>“它在其他任何东西使用它之前设置属性的值。”>“它不适用于自动属性。”>“只是为了装饰。您必须手动设置实际的默认值。”哪个(如果有的话)是对的?DefaultValue是否真的设置了默认值?有没有不起作用的情况?最好不要使用它吗? 最佳答案 我通常使用DefaultValue的地方是用于序列化/反序列化为XML的类。它不会在实例化期间设置默认值,也不会影响自动属性。来自MSDN:ADefaultValueAttributewillnotcauseamembertobe

c# - 属性类如何工作?

我的搜索一直只出现解释如何使用属性并将其应用于类的指南。我想了解如何创建自己的属性类及其工作原理。属性类是如何实例化的?它们是在实例化它们所应用的类时实例化的吗?是否为每个实例化了它所应用的类实例化了一个?例如。如果我将SerializableAttribute类应用于MyData类,并实例化5个MyData实例,是否会在幕后创建SerializbleAttribute类的5个实例?还是只有一个实例在所有这些实例之间共享?属性类实例如何访问它们关联的类?SerializableAttribute类如何访问它所应用的类以便它可以序列化它的数据?它是否具有某种SerializableAtt

c# - 属性类如何工作?

我的搜索一直只出现解释如何使用属性并将其应用于类的指南。我想了解如何创建自己的属性类及其工作原理。属性类是如何实例化的?它们是在实例化它们所应用的类时实例化的吗?是否为每个实例化了它所应用的类实例化了一个?例如。如果我将SerializableAttribute类应用于MyData类,并实例化5个MyData实例,是否会在幕后创建SerializbleAttribute类的5个实例?还是只有一个实例在所有这些实例之间共享?属性类实例如何访问它们关联的类?SerializableAttribute类如何访问它所应用的类以便它可以序列化它的数据?它是否具有某种SerializableAtt

c# - 在与 KnownType 属性一起使用的类上使用 Obsolete 属性时如何忽略编译器警告

因此,我们试图弃用一些现有的类,并开始使用ObsoleteAttribute将它们标记为过时,以便停止使用它们。将KnownType属性与标有Obsolete属性的类型一起使用并导致编译器警告这一事实是意料之中的。但是,在我们的项目中,我们将警告视为错误,因此无法忽略警告。是否有编译器指令来抑制此警告?以下用法会导致编译器警告:///ProductTemplateDataSetismarkedwiththeObsoleteattribute[KnownType(typeof(ProductTemplateDataSet))]publicclassEntityCollectionBase

c# - 在与 KnownType 属性一起使用的类上使用 Obsolete 属性时如何忽略编译器警告

因此,我们试图弃用一些现有的类,并开始使用ObsoleteAttribute将它们标记为过时,以便停止使用它们。将KnownType属性与标有Obsolete属性的类型一起使用并导致编译器警告这一事实是意料之中的。但是,在我们的项目中,我们将警告视为错误,因此无法忽略警告。是否有编译器指令来抑制此警告?以下用法会导致编译器警告:///ProductTemplateDataSetismarkedwiththeObsoleteattribute[KnownType(typeof(ProductTemplateDataSet))]publicclassEntityCollectionBase

c# - 如何将对象传递给属性构造函数

我正在尝试将对象传递给属性构造函数,如下所示:[PropertyValidation(newNullOrEmptyValidatorScheme())]publicstringName{get;privateset;}使用这个属性构造函数:publicPropertyValidationAttribute(IValidatorSchemevalidator){this._ValidatorScheme=validator;}代码无法编译。如何将对象传递给上述属性?编辑:是的NullOrEmptyValidatorScheme实现了IValidatorScheme。错误:错误CS0182

c# - 如何将对象传递给属性构造函数

我正在尝试将对象传递给属性构造函数,如下所示:[PropertyValidation(newNullOrEmptyValidatorScheme())]publicstringName{get;privateset;}使用这个属性构造函数:publicPropertyValidationAttribute(IValidatorSchemevalidator){this._ValidatorScheme=validator;}代码无法编译。如何将对象传递给上述属性?编辑:是的NullOrEmptyValidatorScheme实现了IValidatorScheme。错误:错误CS0182

c# - 如何获取应用了我的自定义属性的成员?

我正在创建一个customattribute在C#中,我想根据属性是应用于方法还是应用于属性来做不同的事情。起初我打算在我的自定义属性构造函数中执行newStackTrace().GetFrame(1).GetMethod()以查看调用属性构造函数的方法,但现在我不确定那会是什么给我吗。如果将属性应用于属性会怎样?GetMethod()会返回该属性的MethodBase实例吗?在C#中是否有不同的方法来获取应用了属性的成员?[AttributeUsage(AttributeTargets.Method|AttributeTargets.Property,AllowMultiple=tr

c# - 如何获取应用了我的自定义属性的成员?

我正在创建一个customattribute在C#中,我想根据属性是应用于方法还是应用于属性来做不同的事情。起初我打算在我的自定义属性构造函数中执行newStackTrace().GetFrame(1).GetMethod()以查看调用属性构造函数的方法,但现在我不确定那会是什么给我吗。如果将属性应用于属性会怎样?GetMethod()会返回该属性的MethodBase实例吗?在C#中是否有不同的方法来获取应用了属性的成员?[AttributeUsage(AttributeTargets.Method|AttributeTargets.Property,AllowMultiple=tr

c# - 自定义程序集属性

我想知道我是否可以定义自定义程序集属性。现有属性按以下方式定义:[assembly:AssemblyTitle("MyApplication")][assembly:AssemblyDescription("Thisapplicationisasampleapplication.")][assembly:AssemblyCopyright("Copyright©MyCompany2009")]有没有办法可以做到以下几点:[assembly:MyCustomAssemblyAttribute("HelloWorld!Thisisacustomattribute.")]