0

古い VB6 ファイルを VB.net (これまで使用したことがない) に変換しようとしています...次の行でエラーが発生します:

Dim JMail As Object
JMail = Server.CreateOBject("JMail.Message")

「サーバーが宣言されていません」と言う

私は持っている:

System.Web をインポートします。

上部に - Server.CreateObject にアクセスできると思いましたか???

4

1 に答える 1

1

(Ick)を使用してさまざまなメソッドを使用および呼び出すServer.CreateObjectことができる場合でも、すべてが強く型付けされているため、.NETに直接相当するものは実際にはありません。何かのようなもの:System.Type.GetTypeFromProgIDInvokeMember

Type proxyType = System.Type.GetTypeFromProgID("JMail.Message");
object proxy = Activator.CreateInstance(proxyType);
object result = proxyType.InvokeMember("MemberName",
   // System.Reflection.BindingFlags
   null,
   proxy,
   // An object array with your parameters for this call
);

最善の解決策は、おそらくライブラリの周りにCOMラッパーを作成し、それをソリューションで参照することです。

あなたのコードが正確に何をするかについてもう少し詳細を提供できれば、おそらく誰かが.NETでそれを達成するためのネイティブな方法を提案するかもしれません。たとえば、電子メールなどを送信しようとしているだけの場合、.NETでそれを行う方法は無数にあります。

更新:JMail.NETを入手するだけで、古いActiveXライブラリを処理する必要がなくなります。

于 2013-03-12T17:34:01.087 に答える