代码中的CachedAnonymousMethodDelegate1从反射器中反汇编

时间:2011-11-16 17:20:37

标签: porting reflector

我正在探索将Silverlight的System.ComponentModel.DataAnnotations移植到桌面的可能性,以便重用在我的silverlight业务对象中完成的验证(不要问......)。

问题是我得到的代码就像......

// Methods
protected ValidationAttribute() : this(CS$<>9__CachedAnonymousMethodDelegate1)
{
    if (CS$<>9__CachedAnonymousMethodDelegate1 == null)
    {
        CS$<>9__CachedAnonymousMethodDelegate1 = new Func<string>(null, (IntPtr) <.ctor>b__0);
    }
}

protected ValidationAttribute(Func<string> errorMessageAccessor)
{
    this._syncLock = new object();
    this._errorMessageResourceAccessor = errorMessageAccessor;
}

protected ValidationAttribute(string errorMessage) : this(new Func<string>(class2, (IntPtr) this.<.ctor>b__2))
{
}

无论如何,我可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

这是编译后匿名委托的样子。

您可以将源中的匿名委托更改为声明的委托。

然后使用类似工具的反射器对其进行逆向工程应该没有问题。