C#:属性の引数としての静的GUID
-
22-07-2019 - |
質問
静的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に変換することです。
所属していません StackOverflow