WSDL प्रकार प्रदाता क्यों अधिभार को असंबद्ध नहीं कर सकता?
#r "FSharp.Data.TypeProviders"
#r "System.ServiceModel"
open Microsoft.FSharp.Data.TypeProviders
[<Literal>]
let serviceAddress = "http://localhost/Microsoft/Dynamics/GP/eConnect/mex"
type Dynamics = WsdlService<serviceAddress>
type DynTypes = Dynamics.ServiceTypes.SimpleDataContextTypes
type Address = System.ServiceModel.EndpointAddress
कोई फर्क नहीं पड़ता कि मुझे क्या करना डबल्यूएसडीएल प्रकार प्रदाता को स्पष्ट नहीं कर सकते समारोह कॉल से:
let svc: DynTypes.eConnectClient = Dynamics.GeteConnectServiceEndpoint()
let svc2 = (Dynamics.GeteConnectServiceEndpoint : unit -> DynTypes.eConnectClient)()
let svc3 = (Dynamics.GeteConnectServiceEndpoint : Address -> DynTypes.eConnectClient)(Address serviceAddress)
उनमें से कोई भी काम करता है।
अन्य एंडपॉइंट्स को अक्षम करना और ईकनेक्ट क्लाइंट के लिए केवल एक को छोड़ना समस्या हल करता है, लेकिन मुझे यह भी नहीं पता कि मैं अन्य अंतराल की आवश्यकता को समाप्त कर सकता हूं या नहीं।
मैं विचार है कि इस डबल्यूएसडीएल प्रकार प्रदाता में एक बग हो सकता है पर झुकाव रहा हूँ। ऐसा लगता है कि यदि आपके पास विभिन्न अनुबंधों के साथ कई अंतराल हैं, तो डब्लूएसडीएल प्रकार प्रदाता आपको प्रत्येक अलग-अलग अंतराल के लिए सभी विधियों देता है, फिर भी उन सभी एंडपॉइंट्स के लिए ओवरलोड को अन्य सभी एंडपॉइंट्स से मेल खाने वाले अलग-अलग रिटर्न प्रकारों के साथ ओवरलोड देता है। –
मैं यहां गलत हो सकता हूं लेकिन मुझे लगता है कि सी # और एफ # तर्कों के लिए समान प्रकार के हस्ताक्षर के साथ अधिभार को अस्वीकार कर देगा, भले ही रिटर्न प्रकार अलग हों, फिर भी यह .NET फ्रेमवर्क में संभव हो सकता है जो डब्लूएसडीएल प्रकार प्रदाता सक्षम हो सकता है उत्पन्न करते हैं। –
जब मैंने डब्लूएसडीएल प्रकार प्रदाता की कोशिश की तो मुझे इस तरह की समस्याओं का एक गुच्छा मिला। आईआईआरसी, वे एफ # और टाइप प्रदाताओं के लिए विशिष्ट कुछ भी के बजाय अंतर्निहित सी # कोड जनरेटर के साथ अक्सर समस्याएं हैं। –