【发布时间】:2015-04-02 13:33:02
【问题描述】:
可以创建一个行为类似于CallerMemberNameAttribute的属性吗?
我的意思是,我用谷歌搜索并找到了this article,它说 CallerMemberName 是属于 CompilerServices 组的属性,或者换句话说,这个属性改变了编译器构建我的 IL 的方式。因此,如果不自定义 c# 编译器,就不可能复制这种行为。
但我还不相信。我希望stackoverflow中的某个人可以说其他话。所以这个问题是给它的。
一些上下文:
我正在寻找这个主要是为了改进这个代码:
public int Prop
{
{ get { return (int)this["prop"]; }
{ set { this["prop"] = value; }
}
我的应用程序中有许多类是字典,并且具有表示特定键的属性。
使用 StackTrace(在 C# 4.0 中)和 CallerMemberName(在 C# 5.0 中)我能够将我的代码更新为:
public int Prop
{
{ get { return Get(); }
{ set { Set(value); }
}
现在我的目标是归档一些这样的内容:
public int Prop { { [DicGet]get; [DicSet]set; } }
那么有人可以帮助我吗?有可能吗?
【问题讨论】:
标签: c# .net callermembername