के रूप में होस्ट किए जाने पर डब्ल्यूसीएफ 'ठीक से' अमूर्त प्रकारों का उपभोग/खुलासा नहीं करता है, मैं हाल ही में वेब सेवाओं को डिजाइन कर रहा हूं लेकिन हाल ही में कभी भी 'जटिल' डब्ल्यूसीएफ सेवा का खुलासा नहीं करना पड़ा। मैं अमूर्त प्रकारों के लिए डब्ल्यूसीएफ में "उचित समर्थन" की स्पष्ट कमी पर परेशान था। सुनिश्चित करें कि - आप उनका उपयोग कर सकते हैं - सुनिश्चित करें कि आप उन्हें 'काम' के लिए प्राप्त कर सकते हैं ... तुम सिर्फ तुम क्या चाहते अंत नहीं है ...क्यों वेब सेवा
पहली समस्या यह है कि अगर आप के साथ एक wsdl से कोड उत्पन्न एक अमूर्त प्रकार आपको बहुत अलग कोड मिलता है क्योंकि यह xmlserializer पर वापस आता है, न कि DataContractSerializer। यह स्पष्ट रूप से वांछनीय से थोड़ा सा है ... मैं फैंसी नए तेज़ धारावाहिक का उपयोग करना चाहता हूं, कृपया धन्यवाद ... (और सेवा/डेटाकंट्रैक्ट के साथ आने वाले सभी)
फ्लिप पक्ष पर - यदि आप पहले कोड से शुरू करें और एक वेब सेवा के रूप में एक उचित रूप से जिम्मेदार अमूर्त डब्ल्यूसीएफ कक्षा का पर्दाफाश करें, wsdl में "अमूर्त वर्ग" तकनीकी रूप से ठोस बनाने के लिए सार = "सत्य" विशेषता नहीं है ... यह वही नहीं है जो मैं चाहता हूं ..
मुझे एक कामकाज मिला है लेकिन इसमें 'हैकरी' की पागल राशि शामिल है जहां मैं पहले wsdl/xsd अनुबंध बना देता हूं, किसी भी सार = "सत्य" को हटा देता हूं (ओह - चलिए इसका उल्लेख नहीं करते कि मैं उपयोग नहीं कर सकता xsd में विशेषताएँ हम करेंगे) और फिर परिणाम svcuitl ... लेकिन अब मुझे एसी # एपीआई के साथ छोड़ दिया गया है जिसमें एक कंक्रीट अमूर्त वर्ग है और फिर मैं संशोधित करने की आवश्यकता है कि अमूर्त कीवर्ड को जोड़ने के लिए ... यह 'काम करता है' लेकिन यह एक विशाल पिटा है - और आसानी से 'स्क्रिप्ट योग्य' नहीं है ...
यह सब सिर्फ बेकार है! मुझे आशा है कि कोई मुझे स्पष्ट रूप से समझा सकता है कि 'क्यों' है ... मैं उन उत्तरों का स्वागत करता हूं जो "ठोस" संसाधनों का हवाला देते हैं लेकिन मैं वास्तव में व्यक्ति को बताने के लिए इंतजार कर रहा हूं - उचित दस्तावेज के साथ (जैसे अधिमानतः अच्छा ओएल डॉन बॉक्स खुद) क्यों यह वास्तव में है ... क्योंकि मुझे बस यह नहीं मिला ...
धन्यवाद सब - अगर कोई और विवरण चाहें - कृपया मुझे बताएं!
एक नमूना अनुरोध के अलावा के लिए अपडेट किया - सी # के साथ शुरू
[ServiceContract]
public interface IShapeTest
{
[OperationContract]
AbsShape EchoShape(AbsShape shape);
}
public class ShapeTestImpl : IShapeTest
{
public AbsShape EchoShape(AbsShape shape)
{
return shape;
}
}
[KnownType(typeof(Square))]
public abstract class AbsShape
{
[DataMember]
public int numSides;
}
public class Square : AbsShape
{
public Square() : base()
{
numSides = 4;//set the numSides to 'prove' it works
}
}
अपेक्षित प्रकार:
<xs:complexType name="AbsShape" abstract="true"> <!--NOTE abstract="true"-->
<xs:sequence>
<xs:element minOccurs="0" name="numSides" type="xs:int"/>
</xs:sequence>
</xs:complexType>
वास्तविक उत्सर्जित प्रकार:
<xs:complexType name="AbsShape"> <!--NOTE the lack of abstract="true"-->
<xs:sequence>
<xs:element minOccurs="0" name="numSides" type="xs:int"/>
</xs:sequence>
</xs:complexType>
शायद आप एक उदाहरण प्रदान करेंगे? मुझे लगता है कि आपके पास 'परेशानी' नहीं है। –
नमूना पोस्ट किया गया (15 वर्णों को पूरा करने के लिए अधिक वर्ण - lol) – dovholuk