【发布时间】:2013-12-20 07:18:28
【问题描述】:
我正在尝试在运行时加载 Exchange Web 服务 DLL 并连接到邮箱。我正在关注本指南:Using Reflection to load unreferenced assemblies at runtime in C# 到目前为止的代码:
var DLL = Assembly.LoadFile(@"Microsoft.Exchange.WebServices.dll");
var theType = DLL.GetType("Microsoft.Exchange.WebServices.Data.ExchangeService");
var c = Activator.CreateInstance(theType);
var method = theType.GetMethod("AutodiscoverUrl");
method.Invoke(c, new object[] { @"anyvalid@email.com" });
在那段代码之后我迷路了。如何使用 ExchangeService 通过 FolderId 绑定邮箱对象? EWS 托管 API 不适用于我的服务器和应用程序。
这是我试图在 ASP.NET 中实现的 Powershell 脚本等效代码:
$MailboxName = "account@domain"
$dllpath = "Microsoft.Exchange.WebServices.dll"
[void][Reflection.Assembly]::LoadFile($dllpath)
$service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010_SP1)
$service.AutodiscoverUrl("anyvalid@email.com")
$mbfolderid= new-object Microsoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Root,$MailboxName)
$MsgRoot = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($service,$mbfolderid)
【问题讨论】:
-
为什么不能引用Microsoft.Exchange.WebServices.dll,不经过反思就可以使用?
标签: reflection exchangewebservices