연락처 데이터를 사용하여 Exchange 웹 서비스 관리 API를 사용하고 있습니다. 다음 코드는 기능적 이지만 이상적이지 않습니다.
foreach (Contact c in contactList)
{
string openItemUrl = "https://" + service.Url.Host + "/owa/" + c.WebClientReadFormQueryString;
row = table.NewRow();
row["FileAs"] = c.FileAs;
row["GivenName"] = c.GivenName;
row["Surname"] = c.Surname;
row["CompanyName"] = c.CompanyName;
row["Link"] = openItemUrl;
//home address
try { row["HomeStreet"] = c.PhysicalAddresses[PhysicalAddressKey.Home].Street.ToString(); }
catch (Exception e) { }
try { row["HomeCity"] = c.PhysicalAddresses[PhysicalAddressKey.Home].City.ToString(); }
catch (Exception e) { }
try { row["HomeState"] = c.PhysicalAddresses[PhysicalAddressKey.Home].State.ToString(); }
catch (Exception e) { }
try { row["HomeZip"] = c.PhysicalAddresses[PhysicalAddressKey.Home].PostalCode.ToString(); }
catch (Exception e) { }
try { row["HomeCountry"] = c.PhysicalAddresses[PhysicalAddressKey.Home].CountryOrRegion.ToString(); }
catch (Exception e) { }
//and so on for all kinds of other contact-related fields...
}
내가 말했듯 이이 코드 는 작동합니다 . 이제 가능하다면 조금 덜 빨리 게 만들고 싶습니다 .
액세스하기 전에 사전에 키가 있는지 확인할 수있는 메소드를 찾을 수 없으며 (with .ToString()
) 키 를 읽으려고하면 존재하지 않으면 예외가 발생합니다.
500
주어진 키가 사전에 없습니다.
이 코드를 리팩터링하여 덜 빨리려면 (여전히 기능적 일 때) 어떻게해야합니까?
TryGetValue
이 페이지를 찾은 후이 방법 이 최선 의 방법 일 것 같습니다 . 위의 코드row
에서 'DataRow` 객체이므로 예제 코드가 올바른지 잘 모르겠습니다.