【发布时间】:2012-03-08 09:52:36
【问题描述】:
我们想触发事件,事件名称保存在 SQL Server 中
在 SQL Server 中,您会找到 ApplicationExitRequestEvent 当我们点击菜单按钮时,我们会从 MenuItem 中获取字符串
Type t = Type.GetType(SelectedMenu.View + "," + "AssemblyName");
var obj = Activator.CreateInstance(t);
if (t != null)
{
//Working firing Event with className
EventAggregator.GetEvent<ApplicationExitRequestEvent>().Publish(null);
//Generic?
EventAggregator.GetEvent<???>().Publish(null);
}
有可能吗? 使用 PRISM 和 MVVM - WPF - .NET 4.0
【问题讨论】:
-
请参阅this question,了解如何使用反射调用泛型方法。如果性能是一个问题,这样做可能不是最佳做法。
-
谢谢。
MethodInfo method = EventAggregator.GetType().GetMethod("GetEvent"); MethodInfo generic = method.MakeGenericMethod(typeof(ApplicationExitRequestEvent)); generic.Invoke(this, null);不起作用。有什么想法吗? -
对象不等于目标对象?!
标签: wpf generics mvvm prism eventaggregator