我想共享一个C#枚举,但我有几个不同的应用程序。 我不太清楚如何在常规应用程序和WCF服务之间共享枚举声明。
这是情况。 我有2个轻量级C#桌面应用程序和WCF Web服务,它们都需要共享枚举值。
客户1有
Method1( MyEnum e, string sUserId );
客户端2有
Method2( MyEnum e, string sUserId );
Web服务有
ServiceMethod1( MyEnum e, string sUserId, string sSomeData);
我最初的做法是创建一个名为Common.dll的库来封装枚举,然后在需要枚举的所有项目中引用该库。 但是,WCF使事情变得困难,因为您需要标记枚举才能使其成为服务的组成部分。 像这样:
[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 };
那么....是否有一种在WCF服务和其他应用程序之间共享枚举的方法?