我有一个像这样定义的类:
public static List<Email_to_Case> email_to_case { get; set; }
public class Email_to_Case
{
public int caseId { get; set; }
public string routingName { get; set; }
public string emailAlias { get; set; }
public List<string> emailExceptions { get; set; }
public bool active { get; set; }
public string priority { get; set; }
public string origin { get; set; }
public string recordType { get; set; }
public string owner { get; set; }
public string ownerType { get; set; }
}
emailExceptions
列表从配置文件中的XML元素填充,如下所示:
List<string> eEx = new List<string>();
if (!String.IsNullOrEmpty(pNode.Attribute("emailExceptions").Value))
{
string emailEx = pNode.Attribute("emailExceptions").Value;
string[] s = emailEx.Split(';');
foreach (string eExp in s)
{
eEx.Add(eExp);
}
}
ec.emailExceptions = eEx;
ec.ownerType = pNode.Element("owner").Attribute("type").Value;
... (cut for brevity)
email_to_case.Add(ec);
现在我想通读该列表,并为每个列表添加一个(Exchange Web服务)SearchFilterCollection
。
我试着这样读:
for (int iIdxExceptions = 0; common.email_to_case.emailExceptions.count-1 ; iIdxExceptions++)
{
// loop through the emailExceptions list in email2case.emailExceptions and for each one:
searchFilterCollection.Add(new SearchFilter.Not(new SearchFilter.ContainsSubstring(EmailMessageSchema.Subject, "FATS")));
}
但我遗漏了一些基本的东西,因为我有编译警告,我该怎么做才能遍历列表,这是该类的一部分?
更新
这很奇怪,因为在我的调用表单代码中,我可以这样读它(BTW, email_to_case 在我的 getConfig 中定义如下:email_to_case = new List<Email_to_Case>();
):
foreach (common.Email_to_Case e2c in common.email_to_case)
{
... looping through ...
for (int iEx = 0; iEx < e2c.emailExceptions.Count; iEx++)
{
...
因此,我当然可以限制从Exchange Web服务返回的电子邮件的处理,但我更倾向于使用GetUnreadMailAll
方法限制查询 - 这样我就不会阅读应该发送的电子邮件了被排除在外。