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必须是只读的,它不能是常量。的字符串和字节[]表示也将是只读的。
有任何解决方法为这个?
解决方案
这是不可能的,并且决不会是可能的,因为作为元数据和[Attributes]
变量是在运行时初始化static
被编译,当然前者不能访问后者(除经由反射)。
如果标准
public const string MyGuid = "blah";
不会为你工作,那么据我所知,只有这样才能达到你想要什么,是反思。
其他提示
不幸的是没有传递的GUID属性的好方法。 唯一的解决方法是使用另一种类型为,并将其转换到GUID。
不隶属于 StackOverflow