में उदाहरण को संदर्भित करने के लिए सही तरीके से कॉल करने का तरीका मैं एक जनरेटिव प्रकार प्रदाता में ProvidedConstructor
के InvokeCode
पर कोड को सही तरीके से कैसे आपूर्ति करूं जो निम्नलिखित के बराबर होगा?प्रोविडड कॉन्स्ट्रास्ट्रक्टर
को देखते हुए:
type NewGeneratedType() as self =
inherit BaseType()
do
Utils.someFun "Foo" (box self)
मैं आधार निर्माता काम कर रहे करने के लिए कॉल किया है, लेकिन पता नहीं कैसे ठीक से काट रहे हैं:
module Utils =
let someFun (s : string) (inst : obj) =
// Does something here...
()
मैं प्रभावी ढंग उत्पन्न प्रकार की आवश्यकता है उदाहरण और फ़ंक्शन को कॉल करें:
let ctor = ProvidedConstructor([])
let ci = baseType.GetConstructor(BindingFlags.Public ||| BindingFlags.Instance, null, [| |], null)
ctor.BaseConstructorCall <- fun args -> ci, args
// I do not know how to properly call this to match the constructor above
ctor.InvokeCode <- fun args -> <@@() @@>
दुर्भाग्यवश, 'ctor.Invoke' त्रुटियों को रिपोर्ट करता है' ... एक त्रुटि की सूचना दी: अज्ञात निरंतर 'प्रदाता कार्यान्वयन। संरक्षित प्रकार। संरक्षित नियंत्रक' जेनरेट विधि में –