You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,71 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <copyright file="WsdlBuildProvider.cs" company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace System.Web.Compilation {
|
||||
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
using System.Web.Services.Description;
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using System.CodeDom;
|
||||
using System.CodeDom.Compiler;
|
||||
using System.Web.Configuration;
|
||||
using System.Web.Hosting;
|
||||
using System.Web.Util;
|
||||
using Util=System.Web.UI.Util;
|
||||
|
||||
[BuildProviderAppliesTo(BuildProviderAppliesTo.Code)]
|
||||
internal class WsdlBuildProvider: BuildProvider {
|
||||
|
||||
public override void GenerateCode(AssemblyBuilder assemblyBuilder) {
|
||||
|
||||
// Get the namespace that we will use
|
||||
string ns = Util.GetNamespaceFromVirtualPath(VirtualPathObject);
|
||||
|
||||
ServiceDescription sd;
|
||||
|
||||
// Load the wsdl file
|
||||
using (Stream stream = VirtualPathObject.OpenFile()) {
|
||||
try {
|
||||
sd = ServiceDescription.Read(stream);
|
||||
}
|
||||
catch (InvalidOperationException e) {
|
||||
// It can throw an InvalidOperationException, with the relevant
|
||||
// XmlException as the inner exception. If so, throw that instead.
|
||||
XmlException xmlException = e.InnerException as XmlException;
|
||||
if (xmlException != null)
|
||||
throw xmlException;
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
ServiceDescriptionImporter importer = new ServiceDescriptionImporter();
|
||||
|
||||
#if !FEATURE_PAL
|
||||
importer.CodeGenerator = assemblyBuilder.CodeDomProvider;
|
||||
|
||||
importer.CodeGenerationOptions = CodeGenerationOptions.GenerateProperties |
|
||||
CodeGenerationOptions.GenerateNewAsync | CodeGenerationOptions.GenerateOldAsync;
|
||||
#endif // !FEATURE_PAL
|
||||
importer.ServiceDescriptions.Add(sd);
|
||||
|
||||
CodeCompileUnit codeCompileUnit = new CodeCompileUnit();
|
||||
|
||||
CodeNamespace codeNamespace = new CodeNamespace(ns);
|
||||
codeCompileUnit.Namespaces.Add(codeNamespace);
|
||||
|
||||
// Create the code compile unit
|
||||
importer.Import(codeNamespace, codeCompileUnit);
|
||||
|
||||
// Add the CodeCompileUnit to the compilation
|
||||
assemblyBuilder.AddCodeCompileUnit(this, codeCompileUnit);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user