草庐IT

ATTRIBUTES

全部标签

c# - 将类的实例作为参数传递给属性构造函数

我的自定义属性中需要一个类/模型的实例(为了访问非静态成员)。publicclassLoginModel{[AutoComplete(currentInstance)]//passinstanceofclassorCompanyNamespublicstringDepartmentName{get;set;}publicstring[]DepartmentNames{get{...}}}有没有一种方法可以不使用new()或Reflection来做到这一点。 最佳答案 这完全不可能。属性在编译时嵌入到程序集的元数据中,因此谈论将类的实

c# - 为什么要在代码中使用 'custom attributes' (.NET)

谁能解释一下在您的代码中使用自定义属性的好处(或原因)。当然,我在某些场景(WCF、序列化等)中使用(并理解)定义的属性,但我无法想象我需要创建和使用我自己的任何算法自定义属性。有人可以提供一个真实案例,其中自定义属性的使用为项目带来了一些东西。 最佳答案 与WCF等的原因相同,但某些特定于您的项目-您想要向某些成员(类型、字段、方法等)添加一些元数据以指定有关所涉及机制的某些内容,而这不是被现有属性覆盖。例如,NUnit想要添加他们自己的指示,表明特定类型包含单元测试-没有这样的现有属性,因此他们创建了TestFixtureAtt

c# - 如何从基类中获取子类的 `Type`

我有一个抽象基类,我想在其中实现一个方法来检索继承类的特性属性。像这样的……publicabstractclassMongoEntityBase:IMongoEntity{publicvirtualobjectGetAttributeValue(stringpropertyName)whereT:Attribute{varattribute=(T)typeof(this).GetCustomAttribute(typeof(T));returnattribute!=null?attribute.GetType().GetProperty(propertyName).GetValue(a

c# - C# 4 中会有通用属性吗?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。所以-如果thereisn'tparticularreason为什么没有通用属性,我想知道-也许它们会得到实现?那些对于ASP.NETMVCAction过滤器来说会很棒。

C# 属性属性

我看到了下面的代码:[DefaultValue(100)][Description("Somedescriptivefieldhere")]publicintMyProperty{...}上面代码片段的功能看起来很清楚,我不知道如何使用它来做有用的事情。我什至不确定给它起什么名字!有谁知道我在哪里可以找到有关这些属性属性的更多信息/教程?我也会对该功能可以执行的任何新颖/有用的任务感兴趣。 最佳答案 Thefunctionalityfromtheabovesnippitseemsclearenough,也许不是,因为许多人认为[De

c# - 为什么属性的属性必须是可读的?

考虑以下属性。internalclassNiceAttribute:Attribute{privatestring_stuff;publicstringStuff{set{_stuff=value;}}}当我尝试使用属性[Nice(Stuff="test")]时,编译器会出现以下错误。'Stuff'isnotavalidnamedattributeargument.Namedattributeargumentsmustbefieldswhicharenotreadonly,static,orconst,orread-writepropertieswhicharepublicandnot

c# - 如何使 .NET 属性仅对某些类型有效

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Specifyrequiredbaseclassfor.NETattributetargets我想指定我的自定义属性只对某些类型有效(基于接口(interface)或基类)。像这样:我该怎么做?

c# - 为什么即使类被标记为 Obsoleted,这段代码仍能正确编译?

这是VisualStudio2008。显然与扩展的静态类有关。publicclassDummy{publicreadonlyintx;publicDummy(intx){this.x=x;}publicoverridestringToString(){returnx.ToString();}}[Obsolete("DoNotUse",true)]publicstaticclassExtensions{publicstaticintSquared(thisDummyDummy){returnDummy.x*Dummy.x;}}classProgram{staticvoidMain(str

c# - 将属性用于通用约束

这个问题在这里已经有了答案:Canyouuse"where"torequireanattributeinc#?(5个答案)关闭9年前。举个例子,比如..publicinterfaceIInterface{}publicstaticvoidInsert(thisIListlist,IListitems)whereT:IInterface{//...logic}这很好用,但我想知道是否可以使用属性作为约束。比如……classInsertableAttribute:AttributepublicstaticvoidInsert(thisIListlist,IListitems)whereT:

c# - StringLengthAttribute 是如何工作的?

在使用EntityFramework和ASP.NETMVC3验证我的模型时,我在使用StringLengthAttribute时遇到问题。我的模型基于一个EntityFramework实体,该实体有一个分部类,该分部类使用MetadataType属性告诉MVC在搜索元数据时使用哪种类型。这显示在下面的代码中:[MetadataType(typeof(PartMetadata))]publicpartialclassPart{}classPartMetadata{[DisplayName("Partnumber")][Required(ErrorMessage="*Required")]