У меня есть несколько разных приложений, среди которых я хотел бы поделиться перечислением С#. Я не могу понять, как делиться объявлением enum между обычным приложением и службой WCF.
Вот ситуация. У меня есть 2 облегченных приложения для удаления С# и веб-сервис WCF, которым все нужно делиться значениями перечисления.
Клиент 1 имеет
Method1( MyEnum e, string sUserId );
Клиент 2 имеет
Method2( MyEnum e, string sUserId );
У Webservice есть
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 и другими приложениями?