के साथ एनम साझा करना मेरे पास कुछ अलग-अलग एप्लिकेशन हैं जिनमें से मैं एक सी # एनम साझा करना चाहता हूं। मैं नियमित रूप से एक आवेदन और डब्ल्यूसीएफ सेवा के बीच एक enum घोषणा साझा करने के बारे में पता नहीं लगा सकता।डब्ल्यूसीएफ सेवा
यहां स्थिति है। मेरे पास 2 लाइटवेट सी # destop ऐप्स और एक डब्ल्यूसीएफ webservice है कि सभी को enum मानों को साझा करने की आवश्यकता है।
ग्राहक 1
Method1(MyEnum e, string sUserId);
ग्राहक 2 है है
Method2(MyEnum e, string sUserId);
वेब सेवा है
ServiceMethod1(MyEnum e, string sUserId, string sSomeData);
मेरे प्रारंभिक हालांकि एक पुस्तकालय enum संपुटित करने के लिए कहा जाता है Common.dll का निर्माण करना था और तो उन सभी परियोजनाओं में लाइब्रेरी का संदर्भ लें जहां enum की आवश्यकता है। हालांकि, डब्ल्यूसीएफ चीजों को मुश्किल बनाता है क्योंकि आपको सेवा के अभिन्न अंग होने के लिए enum को मार्कअप करने की आवश्यकता है। इस तरह:
[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 सेवा और अन्य applictions के बीच एक enum साझा करने के लिए कोई तरीका है?
वेबसाइसेस में enums से बचने के लिए अनुशंसा की जाती है क्योंकि वे सूक्ष्म पीछे की संगत समस्याओं का निर्माण करते हैं। Http://stackoverflow.com/a/788281/52277 –
इस मामले में लागू नहीं होता है; संदर्भित पिछड़ा संगतता मुद्दे * लौटने के कारण * एक ग्राहक के लिए एक enum (जो उन्हें स्पष्ट रूप से तोड़ सकता है) के कारण इनपुट के रूप में एक enum लेने के कारण हैं। –