Eventsink 的 C# CDO
C# CDO for Eventsink
我有一个正在实施 ISMTPOnArrival 的 class a1。
在我的 public 方法中
public void OnArrival(Message Msg, ref CdoEventStatus EventStatus)
{
string strFixedList = Msg.EnvelopeFields["http://schemas.microsoft.com/cdo/smtpenvelope/recipientlist"].Value.ToString();
}
我正在为此事件接收器编写 Nunit 测试。在我的单元测试方法中,我有一个私有方法,它会获取 eml 文件和 returns 我一个 CDO.Message 并且这个对象被传递给 onArrival.
private CDO.Message ReadMessage(String emlFileName)
{
CDO.Message msg = new CDO.MessageClass();
ADODB.Stream stream = new ADODB.StreamClass();
...
msg.DataSource.OpenObject(stream, "_Stream");
msg.DataSource.Save();
return msg;
}
当我调用 public 方法时
a1 b = new a1();
b.OnArrival(消息,参考 cdoevent);
"Msg.EnvelopeFields["http://schemas.microsoft.com/cdo/smtpenvelope/recipientlist"]" 抛出异常。有人可以让我知道这是什么问题吗?
例外情况是 "The requested property or feature, while supported, is not available at this time or in this context"。
有一个变通办法并设置了一个标志,如果它是一个单元测试,那么我会硬编码一个信封字段。
这是有效的。
我有一个正在实施 ISMTPOnArrival 的 class a1。
在我的 public 方法中
public void OnArrival(Message Msg, ref CdoEventStatus EventStatus)
{
string strFixedList = Msg.EnvelopeFields["http://schemas.microsoft.com/cdo/smtpenvelope/recipientlist"].Value.ToString();
}
我正在为此事件接收器编写 Nunit 测试。在我的单元测试方法中,我有一个私有方法,它会获取 eml 文件和 returns 我一个 CDO.Message 并且这个对象被传递给 onArrival.
private CDO.Message ReadMessage(String emlFileName)
{
CDO.Message msg = new CDO.MessageClass();
ADODB.Stream stream = new ADODB.StreamClass();
...
msg.DataSource.OpenObject(stream, "_Stream");
msg.DataSource.Save();
return msg;
}
当我调用 public 方法时
a1 b = new a1();
b.OnArrival(消息,参考 cdoevent);
"Msg.EnvelopeFields["http://schemas.microsoft.com/cdo/smtpenvelope/recipientlist"]" 抛出异常。有人可以让我知道这是什么问题吗?
例外情况是 "The requested property or feature, while supported, is not available at this time or in this context"。
有一个变通办法并设置了一个标志,如果它是一个单元测试,那么我会硬编码一个信封字段。
这是有效的。