private void CreateProxy() { CreateServiceContractGenerator(); foreach (ContractDescription contract in this.contracts) { this.contractGenerator.GenerateServiceContractType(contract); } bool success = true; this.codegenWarnings = this.contractGenerator.Errors; if (this.codegenWarnings != null) { foreach (MetadataConversionError error in this.codegenWarnings) { if (!error.IsWarning) { success = false; break; } } } if (!success) { DynamicProxyException exception = new DynamicProxyException( Constants.ErrorMessages.CodeGenerationError); exception.CodeGenerationErrors = this.codegenWarnings; throw exception; } }
private void CompileProxy() { // reference the required assemblies with the correct path. CompilerParameters compilerParams = new CompilerParameters(); AddAssemblyReference( typeof(System.ServiceModel.ServiceContractAttribute).Assembly, compilerParams.ReferencedAssemblies); AddAssemblyReference( typeof(System.Web.Services.Description.ServiceDescription).Assembly, compilerParams.ReferencedAssemblies); AddAssemblyReference( typeof(System.Runtime.Serialization.DataContractAttribute).Assembly, compilerParams.ReferencedAssemblies); AddAssemblyReference(typeof(System.Xml.XmlElement).Assembly, compilerParams.ReferencedAssemblies); AddAssemblyReference(typeof(System.Uri).Assembly, compilerParams.ReferencedAssemblies); AddAssemblyReference(typeof(System.Data.DataSet).Assembly, compilerParams.ReferencedAssemblies); CompilerResults results = this.codeDomProvider.CompileAssemblyFromSource( compilerParams, this.proxyCode); if ((results.Errors != null) && (results.Errors.HasErrors)) { DynamicProxyException exception = new DynamicProxyException( Constants.ErrorMessages.CompilationError); exception.CompilationErrors = ToEnumerable(results.Errors); throw exception; } this.compilerWarnings = ToEnumerable(results.Errors); this.proxyAssembly = Assembly.LoadFile(results.PathToAssembly); }
private void ImportMetadata() { this.codeCompileUnit = new CodeCompileUnit(); CreateCodeDomProvider(); WsdlImporter importer = new WsdlImporter(new MetadataSet(metadataCollection)); AddStateForDataContractSerializerImport(importer); AddStateForXmlSerializerImport(importer); this.bindings = importer.ImportAllBindings(); this.contracts = importer.ImportAllContracts(); this.endpoints = importer.ImportAllEndpoints(); this.importWarnings = importer.Errors; bool success = true; if (this.importWarnings != null) { foreach (MetadataConversionError error in this.importWarnings) { if (!error.IsWarning) { success = false; break; } } } if (!success) { DynamicProxyException exception = new DynamicProxyException( Constants.ErrorMessages.ImportError); exception.MetadataImportErrors = this.importWarnings; throw exception; } }