पर संकलन त्रुटि प्राप्त करना मैं एक टाइपप्रोवाइडर पर काम कर रहा हूं जो एक एक्सएसडी फ़ाइल पढ़ता है और एक्सएसडी में परिभाषित प्रत्येक प्रकार के लिए एक प्रकार प्रदान करता है। हालांकि मैं नीचे दिए गए कोडप्रदत्त प्रकार
type schema = XmlProviders.Schema<"file.xsd">
type Bazzer = {
Sum : XmlProviders.bar
}
अंतिम पंक्ति पर में एक समस्या है मैं कह रही है कि XmlProviders.bar मौजूद नहीं है एक संकलन त्रुटि मिलती है। मैं प्रकार कैसे परिभाषित के कार्यान्वयन के रूप में इस प्रकार है
let defineType (xType : XElement) =
let name = xType.Attribute(XName.Get "name").Value
let t = ProvidedTypeDefinition(thisAssembly,
ns,
name,
baseType = Some typeof<obj>)
let ctor = ProvidedConstructor(parameters = [ ],
InvokeCode= (fun args -> <@@ "" :> obj @@>))
t.AddMember ctor
do provider.DefineStaticParameters(parameters, fun tyName args ->
let filename = args.[0] :?> string
let main = ProvidedTypeDefinition(thisAssembly,ns,
tyName,
baseType = Some typeof<obj>)
//Elements is a list of XElement
elements |> List.map defineType |> ignore
main
मुझे पता है कि एक XmlProviders.bar प्रकार बनाई गई है क्योंकि अगर मैं तो provider.AddMember t
DefineType को मैं
कह कोई त्रुटि मिलती है एक अतिरिक्त पंक्ति जोड़ने कर रहे हैंThe type provider 'XmlProviders.SampleTypeProvider' reported an error: container type for 'XmlProviders.bar' was already set to 'XmlProviders.Schema'
कहाँ XmlProviders.Schema
ProvidedTypeDefinition
द्वारा provider
पहचान है मैं थोड़ा क्यों संकलक शिकायत है कि प्रकार वहाँ नहीं है पर खो रहा हूँ, जबकि अगर मैं स्पष्ट रूप से इसे जोड़ने मैं त्रुटि है कि यह पहले से ही वहाँ
ऐसा लगता है कि आप GitHub workitem पहले से ही के बारे में पता है, लेकिन मैं इसे यहाँ जोड़ देंगे तो के रूप में अन्य लोगों के बारे में पता XmlPro में अपने प्रयासों [सहायता XSD बनाने के लिए vider] (https://github.com/fsharp/FSharp.Data/issues/57) और बस अगर मैं अपने संबंधित प्रश्न को लिंक करता हूं (अगर मैं बहुत घुसपैठ कर रहा हूं तो इसे हटाने के लिए स्वतंत्र महसूस करें) [लेखन कैसे करें एफ # प्रकार प्रदाता जो जटिल स्कीमा को लागू करता है?] (Http://stackoverflow.com/questions/20024418/how-to-approach-writing-an-f-type-provider-that-enforces-complex-chechema)। चलो देखते हैं कि मैं यहां मदद कर रहा हूं (यानी, मैं इसके साथ रूकी हूं)। – Veksi