我還沒有找到解決方案,如何使用其他接口然後發佈。Rebus服務總線。如何映射不同類型/接口
在簡單情況下,如果我想發佈IMessage並使用IMessage,我必須在兩個應用程序之間共享IMessage定義的程序集。
但是,如果這兩個應用程序正在開發不同的公司。
在這種情況下,我有兩個選擇:
做出共同的接口協議,命名規範等,並共享一個公共圖書館
讓兩家公司都在那裏做的工作,因爲它們是用來在服務總線(或應用程序服務器)中映射數據類型。
第二個選項對我來說比較合適,但我還沒有找到解決方案。
例如,我可能有一個系統的員工作爲
public interface IEmployee
{
int ID { get; set; }
string FirstName { get; set; }
string LastName { get; set; }
}
而在其他系統
public interface ILightEmployee
{
int id { get; set; }
string full_name { get; set; }
}
我要發佈IEmployee和消費ILightEmployee。
期間在服務總線序列化/反序列化相欲 使用特性和歸檔像這樣(它更像一個僞代碼)的一些映射:
public class ContractMapper
{
public LightEmployee Map(IEmployee employee)
{
return new LightEmployee()
{
id = employee.ID,
full_name = employee.LastName + " " + employee.FirstName
};
}
}
例如MuleESB提供了一個編輯器,用於這個轉換/映射。 LINK
對我來說這是不必要的高級解決方案,但至少在代碼中我想做同樣的事情。
是否可以使用Rebus服務總線?
謝謝你的回答。我是Rebus新手,所以到現在爲止我並不清楚,但好消息是,Rebus可以處理這個問題。我必須花更多的時間來玩弄它,才能找到確切的解決方案。 – dannikoti