我编写了这段代码来查找指定时间范围内指定类别的所有约会的总持续时间:
private readonly MAPIFolder _timing;
private int CalculateTotalDuration(DateTime start, DateTime end, string category)
{
string filter = String.Format(
"([Start] >= '{0:g}') AND ([End] <= '{1:g}') AND ([Categories] = '{2}')",
start, end, category);
return _timing.Items.Restrict(filter).Cast<AppointmentItem>().
Sum(appt => appt.Duration);
}
此代码在与俄文版 Outlook 一起使用时会导致以下异常(虽然我没有使用英文版对其进行测试):
System.Runtime.InteropServices.COMException was unhandled
Message=Условие неверно.
Source=Microsoft Outlook
ErrorCode=-2147352567
StackTrace:
at Microsoft.Office.Interop.Outlook._Items.Restrict(String Filter)
...
当我替换[Categories]
为[Категории]
,即
string filter = String.Format(
"([Start] >= '{0:g}') AND ([End] <= '{1:g}') AND ([Категории] = '{2}')",
start, end, category);
它适用于俄语版本的 Outlook。但显然它不适用于其他语言。
如何以多语言方式按类别筛选 Outlook 约会?