【发布时间】:2015-09-13 07:24:08
【问题描述】:
有没有办法在不修改类文件的情况下为方法添加属性?
例如我正在导入一个 WSDL,它会生成一个 Reference.cs,其中包含一个带有方法的代理类。
我已经编写了一个属性,它为我做了一些工作,并将其添加到如下方法中,一切正常:
Reference.cs 文件
public partial class Whatever
{
[MyCustomAttrubute()]
public void MyMethod(string bleh)
{
// do stuff
return;
}
}
但是,我的问题是,如果 WSDL 发生更改,我将需要更新它,这将自动丢失我对 Reference.cs 所做的所有更改。我可以将此属性添加到另一个文件中的方法吗?
【问题讨论】:
-
一般情况下没有...有关属性,请参阅stackoverflow.com/q/3782405/613130... 有一个通过
MetadataTypeAttribute的黑客攻击,但它只能由一些知道它的类使用。 -
我不确定,但您的自定义(稍作修改)T4 模板似乎可以为您提供帮助。
-
如果你喜欢痛苦的世界,你可以试试dynamically generated code and compiling。
标签: c# attributes service-reference