我有这样的代码:
public class TabActivationRequestEvent<T> :
CompositePresentationEvent<TabActivationRequest<T>>{}
public class TabActivationRequest<T>
{
public IOMStudioTab OMStudioTab { get; set; }
public T RegionData { get; set; }
}
public void RequestTabActivation<T>(TabActivationRequest<T> tabActivationRequest)
{
var prismEvent = eventAggregator.GetEvent<TabActivationRequestEvent<T>>();
prismEvent.Publish(tabActivationRequest);
}
我用它来发送一个 Prism 事件(通过事件聚合器)。
但是,当我去订阅时,我遇到了问题。这就是我试图做的:
void OtherClassCtor()
{
var tabFocusEvent = eventAggregator.GetEvent<TabActivationRequest<T>>();
tabFocusEvent.Subscribe(OnTabFocusRequest, true); ^
} |
|
private void OnTabFocusRequest<T>(TabActivationRequest<T> regionData) |
{ |
// do stuff here |
} |
|
This part Fails -------------------------------------------------------+
编译器说我不能在那里使用类型参数。当我站在后面看它时,它是有道理的。(当前类对任何类型参数一无所知)。
但是定义类型对我来说是一个交易破坏者,所以我只打算使用object
.
但这让我想知道是否有任何花哨的编码可以让我通过事件系统传递泛型类型。
如果您知道任何事情,请发布它。如果没有,我会对我object
和我的选角感到满意。