次のようなコードがあります。
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
と私のキャスティングに満足します。