.NET生成泛型方法 - 紧凑框架

Rya*_*own 9 .net c# generics

以下是我正在寻找生成泛型委托的方法的原始问题: .Net生成泛型方法

以下是在.NET 3.5中生成通用委托的代码:

public delegate void PropertyChangedDelegate<OwnerType, PropertyType>(OwnerType sender, String propertyName, PropertyType oldValue, PropertyType newValue);

EventInfo eventInfo = type.GetEvent(property.Name + "Changed");
MethodInfo propertyChangedMethodInfo = this.GetType().GetMethod("content_PropertyChanged", BindingFlags.NonPublic | BindingFlags.Instance);
MethodInfo genericPropertyChangedMethodInfo = propertyChangedMethodInfo.MakeGenericMethod(eventInfo.EventHandlerType.GetGenericArguments());
Delegate delegate_ = Delegate.CreateDelegate(eventInfo.EventHandlerType, genericPropertyChangedMethodInfo);
eventInfo.AddEventHandler(obj, delegate_);

void content_PropertyChanged<OwnerType, PropertyType>(OwnerType sender, String propertyName, PropertyType oldValue, PropertyType newValue)
{
}
Run Code Online (Sandbox Code Playgroud)

这适用于.NET 3.5,但现在当我尝试移植到紧凑框架3.5时,Delegate.CreateDelegate方法需要第三个参数...参数说明说:

它应该是第一个参数,或者"委托绑定的对象".

我尝试将'obj'放在那里,'this'和null,我总是得到一个无效的参数异常.

有任何想法吗?

小智 -1

请检查下面链接中的示例部分,看看是否有帮助。

http://msdn.microsoft.com/en-us/library/74x8f551.aspx

问候,

查希尔汗