我正在關注this article來通過COM註冊SENS事件,但我想我錯過了一些東西。我打電話SubscribeToEvents方法的文章說寫,像這樣:在.NET中捕捉SENS事件,沒有Guid屬性
EventSystemRegistrar.SubscribeToEvents("ManagedSENS EventSubscriber", "ManagedSENS.SensLogonInterop", subscriptionViewerID, this, typeof(SensLogon));
導致這種方法獲取調用:
private static String GetInterfaceGuid(Type type)
{
Object[] attributes = type.GetCustomAttributes(typeof(GuidAttribute), true);
return String.Format("{{{0}}}", ((GuidAttribute)attributes[0]).Value);
}
的問題是,該類型存在SensLogon他們班建議寫作,但它沒有任何屬性,所以該方法拋出一個異常。唯一的屬性,這是,事實上,GuidAttributes,他們說寫上這些課,什麼都沒有(至少據我可以告訴)做的SensLogon類:
[ComImport, Guid("4E14FBA2-2E22-11D1-9964-00C04FBBB345")]
class EventSystem { }
[ComImport, Guid("7542E960-79C7-11D1-88F9-0080C7D771BF")]
class EventSubcription { }
[ComImport, Guid("AB944620-79C6-11d1-88F9-0080C7D771BF")]
class EventPublisher { }
[ComImport, Guid("cdbec9c0-7a68-11d1-88f9-0080c7d771bf")]
class EventClass { }
也許我在這裏錯過了什麼?我是從這些課程或其他東西中派生出來的嗎?顯示SensLogon類,但它沒有任何這些屬性。
有沒有人做過類似的事情來註冊COM事件,或者可以,也許可以看到我在哪裏不正確地跟着文章?
請不要讓我們猜測例外。 – 2010-02-15 23:12:59
您確實在http://www.codeproject.com/KB/cs/subscriptionviewer.aspx上閱讀過? – t0mm13b 2010-02-15 23:32:32
異常的類型並不重要,但它是一個IndexOutOfRange異常,因爲沒有GuidAttribute類型的屬性。缺乏這些屬性是問題,而不是例外。我確實看過那篇文章,但它的範圍似乎遠遠超出了我想要做的事情,它要複雜得多。我不知道該如何應用於我目前正在做的事情。這裏是我寫的兩個類:http://codepaste.net/x3xfsj和http://codepaste.net/khdefj,如果這清除了我可能會錯過的東西。 – 2010-02-16 00:18:56