2011-06-28 5 views
3

nservicebusでメッセージを送信する場合、メッセージに単純なタイプと文字列が含まれているか、独自のオブジェクトを含めても問題ありませんか?もしそうなら、これらのオブジェクトは何の振る舞いもせず軽量なデータ転送オブジェクトであるべきですか?nServiceBusメッセージにオブジェクトまたは単純なタイプと文字列を含める必要がありますか?

public class UserAuthenticatedMessage : IMessage { 

    public MyUserClass User { get; private set; } 

    public UserAuthenticatedMessage(MyUserClass user) { 
     User = user; 
    } 

    public object Value { 
     get { return User; } 
    } 
} 

MyUserClassだけではなく、プロパティだけでなく、行動が含まれています:次のメッセージを送信する例えば

public class MyUserClass { 
    public int Id { get; set; } 
    public string Username { get; set; } 

    public bool ICheckSomething(string foo) { 

    } 
} 

この大丈夫/悪い考えますか?動作しないMyUserDTOクラスを使用する必要がありますか?メッセージ内のすべてのフィールドを明示的に送信し、反対側のオブジェクトに変換する必要がありますか?

答えて

2

メッセージ内にネストされたデータコンテナ(データ転送オブジェクト)を送信することはできますが、動作はしないでください。

+1

クイックアンサーのおかげで、それは私の腸の感覚があったものです。あなたは、なぜ行動を伴うオブジェクトを使用するのが悪いのかを説明することができます。 – dang1es

+2

Udiは答えていないので、私は2セントでチップを作ります(うまくいけば、彼も返信します)。私は、異なるサービス間でその抽象を漏らしているので、何らかの行動を含むクラスは出ません。オブジェクトに対して変更を加えたい場合は、両方のサービスを変更する必要があり、また望ましくない可能性があります。 – RyanR

関連する問題