Даже если вы добавите атрибуты DataContract
и DataMember
к классу, созданному с помощью Reflection.Emit во время выполнения, контракт не может быть включен в метаданные службы и обнаружен клиентом простодобавление этих атрибутов, поскольку создание шага метаданных службы выполняется путем проверки параметров контракта и возвращаемых значений и создания описания службы до того, как служба получит шанс на запуск.
Одним простым вариантом будет использование параметра со слабым типом.в вашей сервисной операции, такой как XElement или Message непосредственно к классу
IE:
void SomeOperation(XElement parameter);
void SomeOtherOperation(Message message);
Менее простой вариант - использоватьповедение пользовательских метаданных и экспорт метаданных для динамически создаваемых классов путем реализации IWsdlExportExtension для экспорта пользовательских метаданных.Это работает при условии, что классы генерируются перед любым вызовом службы, и одна и та же структура классов генерируется при каждом запуске приложения (поэтому может не подходить)