Я использую WebClient для чтения wsdl из URI.
WebClient client = new WebClient();
Stream wsdlStream = client.OpenRead(wsdlURI);
ServiceDescription wsdl = ServiceDescription.Read(wsdlStream);
Затем я устанавливаю Namespace и CompileUnit и использую метод GenerateCodeFromCompileUnit ServiceDescriptionImporter для создания файла класса .cs.
Затем я собираю из него сборку и использую отражение для вызова методов. Проблема в том, что мой созданный файл .cs имеет дополнительные атрибуты xml. И дополнительные параметры вроде:
public void Calc(int a, [System.Xml.Serialization.XmlIgnoreAttribute()] bool aSpecified
Когда я создаю сборку из этого исходного файла, я получаю методы с большим количеством параметров, чем они должны иметь. Оригинальный метод выглядит так:
public int Calc(int a, int b)
и метод в сгенерированном исходном коде выглядит следующим образом:
public int Calc(int a, bool aSpecified, int b, bool bSpecified, out int CalcResult, out bool CalcResultSpecified)
Как получить динамически сгенерированный исходный файл без этих дополнительных параметров? Так что я могу скомпилировать его в сборку и использовать отражение для вызова оригинальных методов?