【发布时间】:2011-01-06 17:51:15
【问题描述】:
在 C++ 中定义 COM 可见类时,我可以在头文件(threading(single) 行)中定义支持的线程模型:
[
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
{
...
}
--编辑:
标记答案上的 cmets 是非常重要的。似乎告诉 RegAsm 设置不同的 ThreadingModel 的唯一方法是编写一个标有 [ComRegisterFunction]attribute 的自定义注册方法。
【问题讨论】:
标签: c# .net com multithreading com-interop