在 UWP 中获取内部构造函数
Get internal constructor in UWP
如何在 UWP 中获取内部参数化构造函数。
为什么 UWP 中没有 such 重载?
var ctr = typeof(T).GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance,
null, CallingConventions.HasThis,
new[] {typeof(IBuffer)}, null);
我可以在 UWP 中调用的唯一重载是这个
var ctr = typeof(T).GetConstructor(new[]{typeof(IBuffer)});
仅获取 public 构造函数。我需要使用 IBuffer
参数获取 类 的内部构造函数并将它们缓存在委托引用中。
我可以使用 GetConstructors 方法。
var ctor = typeof(T).GetConstructors(BindingFlags.NonPublic | BindingFlags.Instance)
.FirstOrDefault(c =>
c.GetParameters()
.Select(x => x.ParameterType)
.SequenceEqual(new[] {typeof(IBuffer)}));
var param = Expression.Parameter(typeof(IBuffer), "param1");
var expr = Expression.New(ctor, param);
var lambda = Expression.Lambda<Func<IBuffer, T>>(expr, typeof(T).Name, new[] { param });
return lambda.Compile();
如何在 UWP 中获取内部参数化构造函数。
为什么 UWP 中没有 such 重载?
var ctr = typeof(T).GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance,
null, CallingConventions.HasThis,
new[] {typeof(IBuffer)}, null);
我可以在 UWP 中调用的唯一重载是这个
var ctr = typeof(T).GetConstructor(new[]{typeof(IBuffer)});
仅获取 public 构造函数。我需要使用 IBuffer
参数获取 类 的内部构造函数并将它们缓存在委托引用中。
我可以使用 GetConstructors 方法。
var ctor = typeof(T).GetConstructors(BindingFlags.NonPublic | BindingFlags.Instance)
.FirstOrDefault(c =>
c.GetParameters()
.Select(x => x.ParameterType)
.SequenceEqual(new[] {typeof(IBuffer)}));
var param = Expression.Parameter(typeof(IBuffer), "param1");
var expr = Expression.New(ctor, param);
var lambda = Expression.Lambda<Func<IBuffer, T>>(expr, typeof(T).Name, new[] { param });
return lambda.Compile();