J'ai quelques applications parmi lesquelles je voudrais partager un C# enum. Je n'arrive pas à comprendre comment partager une déclaration d'enum entre une application régulière et un service WCF.
Voici la situation. J'ai 2 léger C# destop applications et une WCF service web qui ont besoin de partager les valeurs de l'enum.
Client 1 a
Method1( MyEnum e, string sUserId );
Client 2 a
Method2( MyEnum e, string sUserId );
Webservice a
ServiceMethod1( MyEnum e, string sUserId, string sSomeData);
Mon premier était bien de créer une bibliothèque appelée Common.dll pour encapsuler l'enum et puis il suffit de référence de la bibliothèque dans tous les projets où l'enum est nécessaire. Cependant, WCF rend les choses difficiles parce que vous avez besoin de marquer les enum pour être une partie intégrante du service. Comme ceci:
[ServiceContract]
[ServiceKnownType(typeof(MyEnum))]
public interface IMyService
{
[OperationContract]
ServiceMethod1( MyEnum e, string sUserId, string sSomeData);
}
[DataContract]
public enum MyEnum{ [EnumMember] red, [EnumMember] green, [EnumMember] blue };
Donc .... Est-il un moyen de partager un enum parmi un service WCF et d'autres applictions?