2015-07-15 1 views
1

J'ai une classe a1 qui implémente ISMTPOnArrival.C# CDO pour Eventsink

Dans ma méthode publique

public void OnArrival(Message Msg, ref CdoEventStatus EventStatus) 
{ 
    string strFixedList = Msg.EnvelopeFields["http://schemas.microsoft.com/cdo/smtpenvelope/recipientlist"].Value.ToString(); 

} 

Je vous écris un test Nunit pour ce récepteur d'événements. Dans ma méthode de test unitaire, j'ai une méthode privée qui ramasse et eml file et me renvoie un CDO.Message et cet objet est passé à 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; 
} 

lorsque i appelle la méthode publique

a1 b = new a1(); 

b.OnArrival (msg, ref cdoevent);

Une exception est levée dans "Msg.EnvelopeFields [" http://schemas.microsoft.com/cdo/smtpenvelope/recipientlist "]". Quelqu'un peut-il s'il vous plaît laissez-moi savoir quel est le problème? L'exception est "La propriété ou la fonctionnalité demandée, bien que prise en charge, n'est pas disponible pour l'instant ni dans ce contexte".

Répondre

0

Il y a un travail autour et avait un drapeau qui a été mis en place et si c'est un test unitaire alors je coderais un champ d'enveloppe.

Cela fonctionnait.