如何在属性使用静态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。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top