我有几个不同的应用程序,我想在其中共享一个 C# 枚举。我不太清楚如何在常规应用程序和 WCF 服务之间共享枚举声明。
这是情况。我有 2 个轻量级 C# destop 应用程序和一个 WCF Web 服务,它们都需要共享枚举值。
客户 1 有
Method1( MyEnum e, string sUserId );
客户 2 有
Method2( MyEnum e, string sUserId );
网络服务有
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 服务和其他应用程序之间共享枚举?