我正在考虑在MkParseDisplayName/BindToObject
manner中为托管类库实现自定义COM激活逻辑。
这样,从VB创建对象可能如下所示:
obj = GetObject("clsid:12341234-1234-1234-1234-123412341234:!UniqueObjectId")
对于进程外服务器(使用CoRegisterClassObject
),这不会有问题。但是,对于进程内服务器,我需要更改DllGetClassObject
的实现,mscoree.dll
通常由IClassFactory
提供。 这可能吗?
我看到的唯一其他选项是创建C# singleton object作为类工厂并在其上实现IParseDisplayName。从理论上讲,这样的单例也可以用CoRegisterClassObject(CLSCTX_INPROC_SERVER)
注册一个自定义{{1}}类对象,但是单例本身也需要首先实例化。