Там не много вы можете сделать с «T OBJ», если не сообщить компилятору, какие дополнительные интерфейсы, которые он поддерживает.
E.g.
IRequestHandler.ParseRequest<T>(string request, T obj)
where T : IOrderInfo
{
var req = RequestHandlerGateway.DeserializeFromXml<OrderMessageSalesOrder>(request, "SalesOrder");
obj.OrderId = req.Id;
return true;
}
Предполагая, что IOrderInfo определяет свойство OrderId и OrderMessageSalesOrder обеспечивает свойство Id (или поле).
терпение только необходимо, если вы собираетесь создать новый T экземпляр:
IRequestHandler.ParseRequest<T>(string request, ref T obj)
where T : IOrderInfo, new()
{
var req = RequestHandlerGateway.DeserializeFromXml<OrderMessageSalesOrder>(request, "SalesOrder");
obj = new T();
obj.OrderId = req.Id;
return true;
}
Если вы собираетесь бросить десериализованный REQ объектных OBJ, вышеуказанные ответы должны быть достаточно, но я думаю, что вы на дрожащей земле.
Ваш код в порядке. В чем проблема? – Candide
Что такое «Т» в вашем примере? Это OrderMessageSalesOrder? –
T - общий параметр –