我一直在寻找一个如何在C#中实现IUnknown的例子,但是没有找到任何合适的引用或解决方案。
应该像......一样简单。
public interface IUnknown
{
UInt32 AddRef();
UInt32 QueryInterface([In] IntPtr riid, [Out] IntPtr ppvObject);
UInt32 Release();
}
......或者还有更多吗?
答案 0 :(得分:7)
为什么要实施IUnknown?这是一个COM接口。如果要与COM进行互操作,请使用.Net / COM桥,为您实现IUnknown。
答案 1 :(得分:2)
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface ISomeInterface
{
...
}
此属性执行ISomeInterface:IUnknown {...}
答案 2 :(得分:0)
被问到: {...只是出于兴趣,Direct2D接口,ID2D1Factory继承自IUnknown,所以我可能仍然需要用.NET实现这个接口......我不确定我会在这里做什么。 - 5月24日的系列0和8:51的13 ...} 答案是否定的。从IUnknown派生一个类的重点是,你的类不必实现IUknown为你做的任何事情。它会自动处理QueryInterface和AddRefCount之类的事情。你甚至不用C#或C ++做事。在C ++中,然后是CoCreateInstance(),在C#中,它是Activator.CreateInstance()。