Je n'ai pas trouvé de solution pour consommer une autre interface puis publiée.Bus de service Rebus. Comment mapper différents types/interfaces
Dans un cas simple, si je veux publier IMessage et consommer IMessage, je dois partager l'assemblage avec la définition IMessage entre deux applications.
Mais que se passe-t-il si ces deux applications sont développées par différentes entreprises.
Dans ce cas, j'ai deux options:
font un accord sur les interfaces communes, les conventions de nommage, etc et partager une bibliothèque commune
laisser les deux entreprises y font l'emploi car ils sont utilisés pour faire et à l'intérieur du bus de service (ou du serveur d'applications) mapper les types de données.
La deuxième option est plus appropriée pour moi, mais je n'ai pas trouvé de solution.
Par exemple, je pourrais avoir un employé dans un système comme
public interface IEmployee
{
int ID { get; set; }
string FirstName { get; set; }
string LastName { get; set; }
}
Et dans un autre système
public interface ILightEmployee
{
int id { get; set; }
string full_name { get; set; }
}
Je veux publier iEmployee et consommer ILightEmployee.
Au cours de sérialisation/phase désérialisation en bus de service que je veux utiliser une cartographie des propriétés et quelque chose archives comme celui-ci (il est plus comme un code pseudo):
public class ContractMapper
{
public LightEmployee Map(IEmployee employee)
{
return new LightEmployee()
{
id = employee.ID,
full_name = employee.LastName + " " + employee.FirstName
};
}
}
Par exemple MuleESB fournit un éditeur pour ces transformations/cartographie. LINK
C'est une solution avancée inutile pour moi, mais au moins dans le code je veux faire la même chose. Est-il possible d'utiliser le bus de service Rebus?
Merci pour votre réponse. Je suis nouveau avec Rebus, donc jusqu'à maintenant ce n'est pas clair pour moi, mais les bonnes nouvelles sont qu'il semble que le Rebus puisse gérer ce problème. Je dois passer plus de temps à jouer avec pour trouver la solution exacte. – dannikoti