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類?我們是否應該在消息中明確地發送所有的字段,然後在另一端變成一個對象?
感謝您的快速回答,這是我的直覺。你能解釋爲什麼使用具有行爲的對象是不好的,所以我不只是告訴人們這是因爲Udi這樣說。 – dang1es
由於Udi沒有回答我會在我的2分錢(希望他也會回覆)。我不會發布包含任何行爲的類,因爲它會泄漏不同服務之間的抽象。您希望對該對象進行的任何更改都可能需要更改這兩個服務,這也是非常不理想的。 – RyanR