C# 在UWP中获取内部构造函数

C# 在UWP中获取内部构造函数,c#,reflection,uwp,getconstructor,C#,Reflection,Uwp,Getconstructor,如何在UWP中获得内部参数化构造函数 为什么UWP中没有过载 var ctr = typeof(T).GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, CallingConventions.HasThis, new[] {typeof(IBuffer)}, null)

如何在UWP中获得内部参数化构造函数

为什么UWP中没有过载

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)});

它只获取公共构造函数。我需要使用
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();
var ctor=typeof(T).GetConstructors(BindingFlags.NonPublic | BindingFlags.Instance)
.FirstOrDefault(c=>
c、 GetParameters()
.选择(x=>x.ParameterType)
.SequenceEqual(新[]{typeof(IBuffer)});
var param=表达式参数(typeof(IBuffer),“param1”);
var expr=Expression.New(ctor,param);
var lambda=Expression.lambda(expr,typeof(T).Name,new[]{param});
返回lambda.Compile();

你赢了我。我认为您需要等待.net标准2.0来实现一些反射功能。