2016-04-28 4 views
0

最近、Access Mailingライブラリが自分の要件を満たしていないため、SMTP経由でメールを処理するAccess 2013 FrontendアプリケーションのDLLをビルドしています。DLLを使用してAccess 2013の.NETクラス全体を参照する

これはすごくうまくいっていますが、それも私には不思議に思ってしまいました。それで、フォーラムで私の質問に答えてくれるのですが、自分のメーリングメソッドとクラスを作成する代わりに、私の例では、Mailingクラス(例えばSMTPClient)から継承して、Accessで、継承された.NETクラスからプロパティ/メソッドを呼び出せるようにします。

私は実際には主題についてもっと多くの情報がありますが、アクセス2013は多くの改善をもたらし、そのうちの1つはDLLの権利をインポートしているため、実際には可能ではないと思いますか?

答えて

1

私は本当になぜそうではありませんか?唯一の問題は、クラス(com)オブジェクトを作成するときです。必要なコード・スタブが、publicメンバーとしてクラスに配置されているため、Accessはそれらを見ることができますか?

クラスでカスタムインターフェイスを構築していない場合(通常はそうではありません)、互換性のないVBA変数タイプとして公開されているプロパティはCOMオブジェクト全体を無効にします。 (したがって、それらのルーチン(および変数)をプライベートとする)。

一般的に、Accessに公開されているクラスのメソッド/プロパティはすべてパブリックプロパティでなければなりません。これは、元のオブジェクトプロパティをカスタムクラスに継承できることを示唆していますが、それらのメソッド/プロパティを公開するためにパブリックコードスタブが必要です。

私はc#を使用しませんが、vb.netでは継承すると、すべてのコードスタブが自動的に生成されます。したがって、C#が同じ場合、このアプローチの理由はわかりませんあなたのために働くことはありません。

関連する問題