草庐IT

Attributes

全部标签

c# - 接口(interface)上的属性

我有一个接口(interface),它定义了一些带有属性的方法。这些属性需要从调用方法中访问,但我拥有的方法不会从接口(interface)中提取属性。我错过了什么?publicclassSomeClass:ISomeInterface{MyAttributeGetAttribute(){StackTracestackTrace=newStackTrace();StackFramestackFrame=stackTrace.GetFrame(1);MethodBasemethodBase=stackFrame.GetMethod();object[]attributes=methodB

C# 使用属性为函数计时

我想使用属性为函数计时。我想做这样的事情:[TimeIt]publicMyFunc(){//dosomething...return;}执行此函数时,如果函数所用时间超过阈值,则该属性应使用log4net记录时间。这类似于MVCActionFilterAttribute所做的,除了我不想使用MVC。 最佳答案 属性(除了极少数异常(exception),例如[PrincipalPermission]由运行时本身发现)元数据仅;所以不要导致额外的代码神奇地被调用。异常(exception)情况是通过像PostSharp这样的工具,在构

C# 使用属性为函数计时

我想使用属性为函数计时。我想做这样的事情:[TimeIt]publicMyFunc(){//dosomething...return;}执行此函数时,如果函数所用时间超过阈值,则该属性应使用log4net记录时间。这类似于MVCActionFilterAttribute所做的,除了我不想使用MVC。 最佳答案 属性(除了极少数异常(exception),例如[PrincipalPermission]由运行时本身发现)元数据仅;所以不要导致额外的代码神奇地被调用。异常(exception)情况是通过像PostSharp这样的工具,在构

c# - 是否有替代大型凌乱属性的方法?

我经常发现属性可能太大。有时感觉属性比代码占据了更多的屏幕。这会让人很难发现方法名称。此外,它们不可重复使用,因此您最终可能会多次重复您的值。为了解决这个问题,我考虑创建自己的属性类,它继承自所需的属性,并将所有属性设置为我需要的默认值。然而,在大多数情况下,属性是密封的,从而阻止了我的计划。有没有大属性的替代方案?作为我所说内容的随机示例:[SoapDocumentMethod("http://services.acme.co.uk/account/Web/GetCustomerDetails/GetCustomerDetails",RequestNamespace="http://

c# - 是否有替代大型凌乱属性的方法?

我经常发现属性可能太大。有时感觉属性比代码占据了更多的屏幕。这会让人很难发现方法名称。此外,它们不可重复使用,因此您最终可能会多次重复您的值。为了解决这个问题,我考虑创建自己的属性类,它继承自所需的属性,并将所有属性设置为我需要的默认值。然而,在大多数情况下,属性是密封的,从而阻止了我的计划。有没有大属性的替代方案?作为我所说内容的随机示例:[SoapDocumentMethod("http://services.acme.co.uk/account/Web/GetCustomerDetails/GetCustomerDetails",RequestNamespace="http://

c# - 在类级别获取描述属性

我有这样一个类[Description("Thisisawahalaclass")]publicclassWahala{}有没有办法获取Wahala类的Description属性的内容? 最佳答案 绝对-使用Type.GetCustomAttributes。示例代码:usingSystem;usingSystem.ComponentModel;[Description("Thisisawahalaclass")]publicclassWahala{}publicclassTest{staticvoidMain(){Console.W

c# - 在类级别获取描述属性

我有这样一个类[Description("Thisisawahalaclass")]publicclassWahala{}有没有办法获取Wahala类的Description属性的内容? 最佳答案 绝对-使用Type.GetCustomAttributes。示例代码:usingSystem;usingSystem.ComponentModel;[Description("Thisisawahalaclass")]publicclassWahala{}publicclassTest{staticvoidMain(){Console.W

c# - 重写属性上的 .net XmlSerializer

我有一个带有抽象属性的基类:publicabstractintID{get;set;}现在,我有一个子类,它是XmlSerialized。所以,它有:[XmlElement("something")]publicoverrideintID{get{//...}set{//...}}我不能将XmlElement属性移动到基类,因为每个子类都有不同的xml元素名称。现在,当我反序列化这个类时,出现以下错误:Member'Subclass.ID'hidesinheritedmember'BaseClass.ID',buthasdifferentcustomattributes.我能做什么?

c# - 重写属性上的 .net XmlSerializer

我有一个带有抽象属性的基类:publicabstractintID{get;set;}现在,我有一个子类,它是XmlSerialized。所以,它有:[XmlElement("something")]publicoverrideintID{get{//...}set{//...}}我不能将XmlElement属性移动到基类,因为每个子类都有不同的xml元素名称。现在,当我反序列化这个类时,出现以下错误:Member'Subclass.ID'hidesinheritedmember'BaseClass.ID',buthasdifferentcustomattributes.我能做什么?

c# - Obsolete 属性的使用

我最近听说在我们的代码中使用[Obsolete]属性标记许多方法是不好的做法。这些方法在我们的代码库内部,而不是在API上。这些方法处理较旧的加密功能。我觉得这是一种快速而安全的方式,可以向团队的其他成员表明不应使用这些方法,并提供一条消息来建议替代方案。其他人认为我应该完全删除这些方法,根据需要重写或重构现有代码。此外,人们认为忽略编译器警告太容易了。当代码未被第3方使用时,是否有将代码标记为过时的“最佳实践”?或者这在很大程度上是主观的? 最佳答案 第1步。将成员或类标记为[过时]第2步。更新成员或类的所有内部使用,以使用替换过