मेरे पास डब्ल्यूसीएफ सेवाओं के लिए कुछ सेवा व्यवहार हैं जिन्हें मैं अभी पंजीकरण करना चाहता हूं; कोई विन्यास नहीं है।एक सामान्य व्यवहार एक्सटेंशन एक्सटेंशन संभव है?
public class SimpleBehaviorExtensionElement<TBehavior> : BehaviorExtensionElement
where TBehavior: new()
{
protected override object CreateBehavior()
{
return new TBehavior();
}
public override Type BehaviorType
{
get { return typeof(TBehavior); }
}
}
और Web.config में:
<behaviorExtensions>
<add name="myBehavior2"
type="WcfService1.SimpleBehaviorExtensionElement`1[[WcfService1.MyBehavior,
WcfService1]], WcfService1"/>
</behaviorExtensions>
WcfService1.MyBehavior मौजूद है, IServiceBehavior लागू करता है, और परीक्षण किया गया है मुझे लगता है मैं जेनरिक का उपयोग करके एक BehaviorExtensionElement वंशज हर बार बनाने को छोड़ सकता है सोचा।
लेकिन जब मैं संदर्भ < myBehavior2/> कॉन्फ़िग फ़ाइल के व्यवहार अनुभाग में, मैं मिलता है:
system.serviceModel/व्यवहार के लिए विन्यास अनुभाग हैंडलर बनाने में त्रुटि हुई: एक्सटेंशन तत्व 'myBehavior2' इस तत्व में जोड़ा नहीं जा सकता है। सत्यापित करें कि एक्सटेंशन एक्सटेंशन संग्रह system.serviceModel/एक्सटेंशन/व्यवहार एक्सटेंशन पर पंजीकृत है। पैरामीटर नाम: तत्व
सब कुछ करता है, तो मैं एक गैर सामान्य BehaviorExtensionElement वंशज है, जो मैं कर सकते हैं बनाने के काम करता है। लेकिन अब यह मुझे खराब करता है। ;)
ऐसा नहीं है। मेरे पास वर्किंग व्यवहार एक्सटेंशन तत्व हैं जो संस्करण के बिना प्रकार निर्दिष्ट करते हैं। – TrueWill
@TreueWill: मुझे संदेह है कि उनमें से कोई भी कार्य तत्व वास्तव में एक सामान्य है। –
क्या आपने इसे आजमाया है और इसे सामान्य विस्तार के साथ काम करने के लिए सफलतापूर्वक प्राप्त किया है? – TrueWill