जब सी में एक COM-दिखाई वर्ग को परिभाषित करने ++ मैं हेडर फाइल में समर्थित सूत्रण मॉडल (threading(single)
लाइन) को परिभाषित कर सकते हैं:COM-interop के संपर्क में .NET ऑब्जेक्ट को सिंगल थ्रेडेड के रूप में कैसे चिह्नित किया जाए?
[
coclass,
default(IComInterface),
threading(single),
vi_progid("Example.ComClass"),
progid("Example.ComClass.1"),
version(1.0),
uuid("72861DF5-4C77-43ec-A4DC-ED04396F0CCD")
]
वहाँ .NET में सूत्रण मॉडल स्थापित करने का एक तुलनीय तरह से (के लिए है उदाहरण एक विशेषता)? मैं वर्तमान में इस तरह के रूप में मेरे COM-वर्ग को परिभाषित:
[Guid("67155A91-2948-43f5-B07F-5C55CDD240E5")]
[ComVisible(true)]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface IComInterface
{
...
}
[Guid("DC5E6955-BB29-44c8-9FC0-6AADEEB2AFFB")]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("Example.ComClass")]
public class ComClass : IComInterface
{
...
}
--edit:
उल्लेखनीय जवाब पर टिप्पणी वास्तव में महत्वपूर्ण घटक हैं। यह एक अलग थ्रेडिंग मॉडल सेट करने के लिए RegAsm को बताने का एकमात्र तरीका है, [ComRegisterFunction]
विशेषता के साथ चिह्नित एक कस्टम पंजीकरण विधि लिखना है।
मुझे लगता है कि ओपी MIDL विशेषताओं के बारे में बात नहीं कर रहा है। http://msdn.microsoft.com/de-de/library/zfbxt3zs.aspx – Henrik
आप सही हैं। यह मेरा जवाब नहीं बदलता है। –
मैंने अभी रजिस्ट्री की जांच की है और थ्रेडिंगमोडेल के लिए वर्तमान मान "दोनों" है, जो मैं नहीं ढूंढ रहा हूं। [ComRegisterFunction] के साथ चिह्नित विधि का उपयोग करके COM-Class मैन्युअल रूप से पंजीकृत करने के अलावा थ्रेडिंगमोडेल को सेट करने का कोई और तरीका नहीं है? – Xperimental