jon*_*ers 3 .net c# generics com generic-list
我们有一个用C#.Net 2.0编写的小框架,我们想要向COM公开.
问题是,我们有一些通用类,将公开如下:
interface IOurClass
{
ReadonlyCollection<IOurListObject> OurCollection
{
get;
}
}
interface IOurListObject
{
//Some properties that don't matter
}
Run Code Online (Sandbox Code Playgroud)
将通用集合暴露给COM的最佳(或推荐方法)是什么?我们不必支持泛型,我们只需要以某种方式公开IOurListObject的集合.
我们也希望避免为我们使用的每个集合编写一个新类,但它可能是不可能的.
不可能将通用集合(或任何其他"通用"的东西)暴露给COM.
所以,我建议你在COM-visible界面中创建一个非泛型属性(或方法).此方法可以返回'IOurListObject'项的数组.在你的类中,你可以显式地实现这个方法,这样当你直接在COM外面引用对象时它就不会出现在你的intellisense中.
我希望自己有点清楚.
例:
[ComVisible(true)]
public interface IOurClass
{
IOurListObject[] OurCollection { get; }
}
public class OurClass : IOurClass
{
IOurListObject[] IOurClass.OurCollection { get { return OurCollection.ToArray();} }
public ReadOnlyCollection<IOurListObject> OurCollection { ... }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3951 次 |
| 最近记录: |