Microsoft Exchange Webサービス(EWS)マネージAPI 1.2を使用して、C3を使用してExchangeメールボックスのデータにアクセスしています。返されたオブジェクトの一部のプロパティは、カスタムプロパティであるため、アクセスが困難です。
これらのプロパティへのアクセスを簡素化するために、(一例として)EWSが提供するContactクラスを拡張するContact2というクラスを作成しました。
Contactオブジェクトを返す関数を呼び出す場合、どうすればそれをContact2に「アップグレード」できますか?
これが私が書いたContact2クラスです:
namespace ExchangeContacts
{
class Contact2 : Microsoft.Exchange.WebServices.Data.Contact
{
public ExchangeService ex = new ExchangeService();
public Dictionary<string, ExtendedPropertyDefinition> propDefs = new Dictionary<string, ExtendedPropertyDefinition>();
public PropertySet myPropSet = new PropertySet();
public Contact2(ExchangeService service)
: base(service)
{
propDefs.Add("MarketingGuid", new ExtendedPropertyDefinition(new Guid("3694fe54-daf0-49bf-9e37-734cfb8521e1"), "MarketingGuid", MapiPropertyType.String));
myPropSet = new PropertySet(BasePropertySet.FirstClassProperties) { propDefs["MarketingGuid"] };
ex = service;
}
new public void Load()
{
base.Load(myPropSet);
}
new public void Load(PropertySet propertySet)
{
propertySet.Add(propDefs["MarketingGuid"]);
base.Load(propertySet);
}
public string MarketingGuid
{
get
{
string g;
if (TryGetProperty(propDefs["MarketingGuid"], out g))
return g;
else
return "";
}
set
{
SetExtendedProperty(propDefs["MarketingGuid"], value);
}
}
}
}