我正在使用类库的项目,我需要我的类与主机应用程序通信。我该如何使用主项目类方法?
我使用 Reflection 将自定义程序集加载到应用程序域中。
private void myButton(object sender, RoutedEventArgs e)
{
MainAppNameSpace.handeling_buttons.MethodOfClass(sender as Button);
}
更新 我的问题很简单,如何使用后来的类,并且在编写插件类时不存在。我对这种需求的方法是定义外部库中的类,可以由主程序集和插件使用。但是我不确定它在WPF环境中的效率和可靠性。
答案 0 :(得分:0)
您应该通过以下代码从应用程序域中找到您的类型(类):
Type objectType = (from asm in AppDomain.CurrentDomain.GetAssemblies()
from type in asm.GetTypes()
where type.IsClass && type.Name == "ClassName"
select type).Single();
然后调用您想要的方法。这意味着你应该知道你的方法名称:
objectType.GetMethod("YourMethod").Invoke(Activator.CreateInstance(type),null);
如果要传递参数,可以使用以下代码执行此操作:
objectType.GetMethod("YourMethod").Invoke(Activator.CreateInstance(type, "MainFunctionParameter"), new object[] { "ParameterToPass" });