2011-06-22 10 views
0

私はnServiceBus PubSub .net4の例をVBに変換しようとしています。私は言語の問題だと思っていますが、私は専門家に尋ねると思いました。vb.netでnservicebusを使用

問題のコードは、パブリッシャからです:

var eventMessage = publishIEvent ? Bus.CreateInstance<IEvent>() : new EventMessage(); 

私がしようとすると

Public Property Bus As IBus 
Dim eM As New EventMessage() 
      eM = Bus.CreateInstance(Of IEvent)() 

とVBでこれを実行すると、私はオブジェクトエラーのインスタンスに設定されていないオブジェクトrefrenceを取得します

しかし、私は、iBusが新しいインターフェイスを使用することができないというエラーが表示されます。

どのように私はこれを回避するための任意のアイデアですか?

c#とvb.netの間の類似点を考えれば、私はこのことが可能ではないと信じていますか?

任意のアイデアがタイプである、条件付きの2つの部分は同じ型を持っていないが、彼らは(私は信じている)の両方IEventにアサインされている

おかげ

クリス

答えて

0

を歓迎C#コンパイラはeventMessageを持っています。 (ちなみに、私はeMの代わりに名前eventMessageを使用してお勧めしたい。)

;

Dim eM as IEvent 
If publishIEvent Then 
    eM = Bus.CreateInstance(Of IEvent)() 
Else 
    eM = New EventMessage() 
End If 

(私のVBが錆びてきている...おそらくない完全に正しい構文):これを試してみてください

+0

ありがとう@Aasmund @JasonGそれは何か大きなaaaah thatsがあった!私が持っている唯一の問題は、VBの明示的な実装を作成せずにインターフェイスを使用することができませんでした...ちょうどC# –

0

上記のC#コードはif-then構造体です。私は私の前にコードを持っていないが、ラインは基本的にの省略形です:

If (publishIEvent == true) 
{ 
    var eventMessage = Bus.CreateInstance<IEvent>() 
} 
else 
{ 
    var eventMessage = new EventMessage(); 
} 

この問題を解決するのに役立ちます希望。

FYI、上記のコードは構文的には正しいとは思えず、C#ステートメントのポイントを説明しようとしています。

関連する問題