Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF c#使用反射订阅/发布事件机制-对还是错?_C#_Wpf_Wpf Controls_Binding_Prism - Fatal编程技术网

WPF c#使用反射订阅/发布事件机制-对还是错?

WPF c#使用反射订阅/发布事件机制-对还是错?,c#,wpf,wpf-controls,binding,prism,C#,Wpf,Wpf Controls,Binding,Prism,我想在WPF应用程序中实现一个简单的订阅/发布机制,这样我就可以从应用程序中的不同位置订阅事件,指定事件类型和处理程序方法,然后在发布事件时,我的机制将调用订阅服务器上的所有订阅方法。我不能使用RouteEvent,因为我希望在不被强制到可视化树的情况下自由引发事件 我能够通过c#反射实现上述功能。但是,由于我对c#和WPF(来自Java)相当陌生,我想确定这是首选的方法 是吗 非常感谢,看起来您需要框架中的模式。当然,您可以自己实现它,尽管我不明白为什么您可能需要反射。您可以使用反射(性能会受

我想在WPF应用程序中实现一个简单的订阅/发布机制,这样我就可以从应用程序中的不同位置订阅事件,指定事件类型和处理程序方法,然后在发布事件时,我的机制将调用订阅服务器上的所有订阅方法。我不能使用RouteEvent,因为我希望在不被强制到可视化树的情况下自由引发事件

我能够通过c#反射实现上述功能。但是,由于我对c#和WPF(来自Java)相当陌生,我想确定这是首选的方法

是吗


非常感谢,

看起来您需要框架中的模式。当然,您可以自己实现它,尽管我不明白为什么您可能需要反射。

您可以使用反射(性能会受到影响),但我不确定它是否最适合您。你能举个例子说明你想完成什么吗?也许是伪代码?谢谢。我使用反射,因为我不知道可以用来传递方法引用的Action类。谢谢正是我要找的!我已经实现了这样的功能,我只需要使用Action类来替换反射的用法,Action类可以用来传递对Subscriber方法的引用。“EventAggregator”是否可以作为库下载?还是仅仅是一种模式?谢谢。它是在Prism框架中实现的(请参阅我答案中的链接),可从codeplex.com下载。