2016-04-28 51 views
0

所以,最近我一直在建設C#中的DLL我訪問2013前端應用程序,通過SMTP處理郵件和做一些驗證,因爲訪問郵件庫的不符合我的要求。參考整個.NET類在Access 2013與DLL

這一切都工作得很好,但它也讓我想知道,我真的不能在論壇上找到答案,因此我的問題是,有可能不是創建我自己的郵件方法和類來創建一個可見的COM類,並使它繼承,在我的例子中,郵件類(例如SMTPClient),以便在Access中,我可以從繼承的.NET類調用屬性/方法?

其實我不認爲這是可能的,因爲那麼就不會有關於這個問題,但是,另一方面,訪問2013有很多改進可能更多的信息,其中一人被導入DLL的吧?

回答

1

我不確定爲什麼不呢?唯一的問題是當你創建你的類(com)對象時,所需的代碼存根作爲公共成員放入類中,因此Access可以看到它們?

這裏唯一真正值得警惕的是,如果你沒有在你的類中創建一個自定義接口(我通常不這樣做),那麼作爲非兼容VBA變量類型公開的任何屬性都會將整個COM對象渲染爲無效。 (所以將這些例程(和變量)設爲私有)。

所以作爲一般規則,暴露給Access的類的任何方法/屬性都必須是公共屬性 - 這表明並暗示着您可以將原始對象屬性繼承到您的自定義類中 - 但您仍然需要公共代碼存根來公開這些方法/屬性。

我不使用c#,但在vb.net中,當你繼承時,那麼所有的代碼存根都是爲你自動生成的 - 所以如果c#是相同的,那麼我不明白爲什麼這種方法將不適合你。