C#向COM公开类-通用集合我们有一个用C#.Net2.0编写的小型框架,我们希望向COM公开。问题是,我们有一些通用类将公开如下:interfaceIOurClass{ReadonlyCollectionOurCollection{get;}}interfaceIOurListObject{//一些无关紧要的属性}向COM公开泛型集合的最佳(或推荐)方式是什么我们不必支持泛型,我们只需要公开IOurListObject的集合不知何故。我们还想避免为我们使用的每个集合编写新类,但这可能是不可能的。向COM公开泛型集合(或任何其他“泛型”)是不可能的。因此,我建议您在COM可见接口中创建一个非泛型属性(或方法)。此方法可以返回“IOurListObject”项目的数组。在您的类中,您可以显式实现此方法,这样当您直接在COM外部引用该对象时,它就不会出现在您的智能感知中。我希望我更清楚一点。示例:[ComVisible(true)]publicinterfaceIOurClass{IOurListObject[]OurCollection{get;}}publicclassOurClass:IOurClass{IOurListObject[]IOurClass.OurCollection{get{returnOurCollection.ToArray();}}publicReadOnlyCollectionOurCollection{...}}查看这篇文章。使用直接数组或使用ArrayList。似乎倒退了一步,但泛型集合不太适合COM。以上就是C#学习教程:C#暴露类给COM——总合分享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
