Проблема: У меня есть служба WCF, которая вызывает методы через отражение и отправляет результаты. Как так:WCF Отправка объекта [] без добавления KnownTypeAttributes
[OperationContract] Object InvokeMemberByReflection(string typeName, string name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args);
Я делаю это потому, что у меня есть существующий API X, который я хочу вызвать. Я не хочу писать обертки для всех методов.
Я также не использую явные DataContracts, потому что сервер и клиент ссылаются на один и тот же набор DLL.
Однако для метода InvokeMemberByReflection выше, поскольку я отправляю параметры метода как массив объекта типа, похоже, что я должен добавить все возможные сигнатуры методов API X, как KnownTypeAttributes для работы DataContractSerializer.
Есть ли работа для этого? CLR в основном знает типы элементов, которые содержатся в массиве объектов. Может ли это не сериализоваться/десериализоваться на основе этого (при условии, что это совсем другой тип)?
Также я был бы признателен за любые другие шаблоны для решения такой проблемы. По очевидным причинам отражение слишком медленно.
Какой API-интерфейс вы можете получить, когда может быть смысл обернуть все его методы в (тяжелых) вызовах веб-службы без какой-либо абстракции? –
Это тестовый API, поэтому производительность здесь не проблема. – Kakira
Тогда почему вы используете веб-службы? –