2010-07-08 100 views
0

我必須將dll調整爲COM對象(類庫中的一個主類)。 這個DLL有其他dll的參考。 當我爲COM使用C#屬性並註冊DLL時,我無法使用這個類,註冊表在註冊表中註冊很多亂七八糟(我的類庫中很少有公共類,我不想將它們暴露爲com)。這個問題讓我瘋了嗎?有人知道C#中的com接口是否強制引用dll中的變化(當我創建一個簡單的類並且它的交互效果很好時,爲什麼我認爲它與引用dll有關)? 請幫助我!COM對象C的問題#

感謝提前!

回答

1

在該程序集中使用Attibutes。如果你不想公開課是可見的COM接口

[ComVisible(false)] 

然後有一些選項如何使COM可見他們的 之一: 使帶有屬性的界面

[ComVisible(true)] 
[InterfaceType(ComInterfaceType.InterfaceIsDual)] 
[Guid("new generated GUID")] 
public interface ISample 
{ 
void DoSomthing(); 
} 

然後實現這個接口

+0

但我希望作爲COM界面(我把他設置爲真)的類看起來根本不存在! 您確定所引用的dll不需要更改嗎? – breakpoint 2010-07-08 09:58:32

+0

@breakpoint查看我的更新 – Arseny 2010-07-08 10:26:03

+0

那麼,我有一個接口(ISample)和靜態類工廠(靜態類SampleFactory),它沒有實現ISample接口,只是有返回ISample實例的Create函數。 我想公開這些類作爲com可見。可能嗎?實際上,它不工作:( – breakpoint 2010-07-08 10:54:16