में दृढ़ता से टाइप किए गए तर्कों को पास करना मेरे पास COM इंटरऑप के माध्यम से दो .NET कक्षाएं सामने आई हैं - चलो फू और बार कहें, और मुझे बार में परिभाषित विधि में फू प्रकार के तर्क को पारित करने की आवश्यकता है। कुछ इस तरह:.NET COM इंटरऑप
[ComVisible(true)]
public class Foo
{
// whatever
}
[ComVisible(true)]
public class Bar
{
public void Method(Foo fff)
{
// do something with fff
}
}
जब मैं निम्नलिखित VBS (cscript.exe का उपयोग) चलाएँ:
D:\test.vbs(3, 1) Microsoft VBScript runtime error: Invalid procedure call or argument: 'bar.Method'
अगर मैं बदल हालांकि,:
set foo = CreateObject("TestCSProject.Foo")
set bar = CreateObject("TestCSProject.Bar")
call bar.Method(foo)
मैं कोई त्रुटि मिलती है इस विधि की घोषणा:
public void Method(object o)
{
Foo fff = (Foo)o;
// do something with fff
}
सबकुछ काम करता है। मैंने इंटरफेस, विशेषताओं इत्यादि के साथ कुछ जादू की कोशिश की लेकिन अब तक कोई भाग्य नहीं है।
कोई अंतर्दृष्टि?
बहुत धन्यवाद
इसे पोस्ट के रूप में काम करना चाहिए, वीबीस्क्रिप्ट देर से बाध्यकारी का उपयोग करता है। एक उदाहरण बनाने के लिए अपने स्निपेट को बेहतर बनाने का प्रयास करें जो उसी तरह विफल हो। –
@ हंस - मैंने वीबीएस स्निपेट जोड़ा जो विफल रहता है। असली कोड से कॉपी/चिपकाया सबकुछ। धन्यवाद – Elephantik