CallerMemberNameAttribute
?に似た動作を持つ属性を作成することは可能です。
つまり、Google で検索してこの記事を見つけたということです。つまり、CallerMemberName は CompilerServices グループに属する属性であるということです。つまり、この属性によって、コンパイラが IL をビルドする方法が変わるということです。そのため、C# コンパイラをカスタマイズせずにこの動作を再現することは不可能です。
しかし、私はまだ確信が持てません。スタックオーバーフローの誰かが別のことを言うことができることを願っています。したがって、この質問はそれに対するものです。
いくつかのコンテキスト:
私は主にこのコードを改善するためにこれを探しています:
public int Prop
{
{ get { return (int)this["prop"]; }
{ set { this["prop"] = value; }
}
私のアプリケーションには、辞書であり、特定のキーを表すプロパティを持つ多くのクラスがあります。
StackTrace
(C# 4.0) と(C# 5.0) を使用CallerMemberName
して、コードを次のように更新できました。
public int Prop
{
{ get { return Get(); }
{ set { Set(value); }
}
今、私の目標は、次のようなものをアーカイブすることです:
public int Prop { { [DicGet]get; [DicSet]set; } }
誰かが私を助けることができますか?それが可能だ?