在反射中传递参数Windows商店应用程序



我想传递一些参数给在通用windows应用程序中使用反射调用的函数。下面是我尝试的代码,我得到一个异常"参数计数不匹配"。请给我一些建议。

public class myClass
{
    public async void btn_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
    {
        Type type = Type.GetType("moto_Windows.Actions.NextViewAction");                  
        object[] mParam = new object[] { 5, 10 };
        var nva = Activator.CreateInstance(type);
        await (dynamic)type.GetTypeInfo().GetDeclaredMethod("NextView").Invoke(nva, mParam);
    }
}

我试图调用的类如下所示

namespace moto_Windows.Actions
 {
    public class NextViewAction
    {   
    public NextViewAction(object [] obj)
    {  
         //Constructor         
    }
    public async void NextView()
    {
        //Method to be invoked.
    }
}
}

最后我通过构造函数在字典中传递值来解决这个问题,我的代码是

Type type = Type.GetType("moto.Actions." + ctrl.Action.name);
ctrl = (Carrot_Control)btn.DataContext;
Dictionary<string, object> _dict = new Dictionary<string, object>();
dict.Add("a", 5);
_dict.Add("b", 10);
var t = Activator.CreateInstance(type, _dict);
await (dynamic)type.GetTypeInfo().GetDeclaredMethod("NextView").Invoke(t, null);  

和我试图调用的类

namespace moto_Windows.Actions
{
public class NextViewAction
{   
public NextViewAction(Dictionary<string,object> _dict)
{  
     //Constructor         
     string a = _dict[a];
     string b = _dict[b];
}
public async void NextView()
{
    //Method to be invoked.
}
}
}

相关内容

  • 没有找到相关文章

最新更新