2011-07-12 18 views
6

के माध्यम से प्रकट सी # गुणों पर लागू हेल्पस्ट्रिंग विशेषता प्राप्त करना मैं वर्तमान में एक लाइब्रेरी पर काम कर रहा हूं जिसे एक विरासत परियोजना में उपयोग के लिए COM के संपर्क में लाया जाना है जिसे अपग्रेड किया जा रहा है। मैं इंटरफेस बना रहा हूं जो खुलासा किया जा रहा है, और उनके पास लंबे, int, आदि प्रकारों के साथ गुण हैं। विवरण एट्रिब्यूट का उपयोग करके, मैं इंटरफेस, कक्षाओं और विधियों के लिए .tlb में जेनरेट की गई हेल्पस्ट्रिंग प्राप्त कर सकता हूं, लेकिन किसी कारण से यह गुणों के लिए काम नहीं करना चाहता है। क्या संपत्तियों के लिए टीएलबी आउटपुट में उत्पन्न हेल्पस्ट्रिंग प्राप्त करने के लिए वैसे भी है?COM इंटरफेस

उत्तर

8

आपको व्यक्तिगत रूप से गेटर और सेटटर पर विशेषता डालना है। इस तरह:

using System; 
using System.ComponentModel; 
using System.Runtime.InteropServices; 

namespace ClassLibrary1 { 
    [ComVisible(true), InterfaceType(ComInterfaceType.InterfaceIsDual)] 
    public interface IFoo { 
     int property { 
      [Description("prop")] 
      get; 
      [Description("prop")] 
      set; 
     } 
    } 
} 

विवरण दोहराना बेकार है, लेकिन आईडीएल में भी आवश्यक है।

+1

हाँ, यह चाल है। विधि पैरामीटर के साथ एक ही काम करने का कोई तरीका है? मैं उन्हें काम करने के लिए नहीं मिल सकता है। विधियों के लिए, यह ठीक है, लेकिन पैरामीटर नहीं, या मूल्यों को वापस। –

+1

नहीं, प्रकार पुस्तकालयों द्वारा समर्थित नहीं है। –

+0

मुझे पता है कि यह शोर है, लेकिन मुझे @ हंसपैसेंट धन्यवाद देने के लिए * आवश्यक * है। हर बार जब मेरे पास COM के बारे में कोई सवाल है, तो आप एक जवाब के साथ हैं। – RubberDuck