| File: Metadata\MetadataFileInfo.cs | Web Access |
| Project: src\src\dotnet-svcutil\lib\src\dotnet-svcutil-lib.csproj (dotnet-svcutil-lib) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System; using System.Diagnostics; #if PRIVATE_RTLIB using XmlNS = Microsoft.Xml; #else using XmlNS = System.Xml; #endif using WsdlNS = System.Web.Services.Description; namespace Microsoft.Tools.ServiceModel.Svcutil.Metadata { internal class MetadataFileInfo { internal MetadataFileInfo(object metadata, string filePath, string sourceUri, Action<XmlNS.XmlWriter> write) { Debug.Assert(metadata != null && filePath != null && write != null, "One or more parameters null!"); this.Metadata = metadata; this.FilePath = filePath; this.SourceUri = sourceUri; this.Write = write; } public string FilePath { get; private set; } public string SourceUri { get; private set; } public object Metadata { get; private set; } public Action<XmlNS.XmlWriter> Write { get; private set; } public bool Equals(MetadataFileInfo other) { return other != null && (Object.ReferenceEquals(this, other) || this.Equals(other.FilePath)); } public bool Equals(string otherFilePath) { return otherFilePath != null && MetadataFileNameManager.UriEqual(this.FilePath, otherFilePath); } public override bool Equals(object obj) { return Equals(obj as MetadataFileInfo); } public override int GetHashCode() { return this.FilePath.ToUpperInvariant().GetHashCode(); } public override string ToString() { return this.FilePath; } } internal class WsdlFileInfo : MetadataFileInfo { internal WsdlFileInfo(object metadata, string filePath, string sourceUri, Action<XmlNS.XmlWriter> write) : base(metadata, filePath, sourceUri, write) { } internal WsdlNS.ServiceDescription Wsdl { get { return this.Metadata as WsdlNS.ServiceDescription; } } } internal class SchemaFileInfo : MetadataFileInfo { internal SchemaFileInfo(object metadata, string filePath, string sourceUri, Action<XmlNS.XmlWriter> write) : base(metadata, filePath, sourceUri, write) { } internal XmlNS.Schema.XmlSchema Schema { get { return this.Metadata as XmlNS.Schema.XmlSchema; } } } }