0
我在我的wcf服務中加入了一個奇怪的行爲。這是我的opreation合同執行:爲什麼我的域名轉換器調用了兩次?
public IEnumerable<Dto.ProductType> GetAllProductTypes()
{
return m_InventoryRepository.GetAllProductTypes().Select(DomainToDtoConverter.ConvertToDto);
}
如果我已經讓說3000種產品類型,那麼我應該想到的是我的域名DTO轉換器被稱爲3000倍。但這種情況並非如此;它被稱爲6000次。如果我再保證我加載的所有項目之前,我回到這樣的:
...Select(DomainToDtoConverter.ConvertToDto).ToList();
...然後轉換器被稱爲3000次,我期望的那樣。
任何人都知道爲什麼會發生這種情況?
我想我們會改變我們的所有業務合同返回一個數組,而不是IEnumerable的
是的,但我不明白爲什麼wcf解析我的IEnumerable兩次。現場發生了什麼? – Michael
這是序列的兩倍。您可以在該方法中放置一個斷點並查看callstack以查找位置。 – SLaks