0

我正在尝试将旧的 VB6 文件转换为 VB.net(我以前从未使用过)...我在这一行遇到错误:

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

“未声明服务器”

我有:

导入 System.Web

在顶部 - 我认为这让我可以访问 Server.CreateObject ???

4

1 回答 1

1

由于一切都是强类型的,因此在 .NET 中并没有真正的直接等价物Server.CreateObject,尽管您可以使用(Ick)来使用System.Type.GetTypeFromProgID和调用各种方法。InvokeMember就像是:

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 回答