質問

静的Guidを属性の引数として使用するにはどうすればよいですか

static class X
{
  public static readonly Guid XyId = new Guid("---");
}

[MyAttribute(X.XyId)] // does not work
public class myClass
{
}

Guidは読み取り専用である必要があるため機能しません。constにすることはできません。文字列とbyte []表現も読み取り専用になります。

これに対する回避策はありますか?

役に立ちましたか?

解決

[Attributes] はメタデータとしてコンパイルされ、 static 変数は実行時に初期化され、もちろん前者はアクセスできないため、不可能であり不可能です。後者(Reflection経由を除く)。

標準の場合

public const string MyGuid = "blah";

あなたのために働かないので、あなたが望むものを達成する唯一の方法は、Reflectionを使うことです。

他のヒント

残念ながら、Guidを属性に渡す良い方法はありません。 唯一の回避策は、そのために別のタイプを使用し、Guidに変換することです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top