#region Copyright (c) Microsoft Corporation /// <copyright company='Microsoft Corporation'> /// Copyright (c) Microsoft Corporation. All Rights Reserved. /// Information Contained Herein is Proprietary and Confidential. /// </copyright> #endregion using System; using System.Collections.Generic; using System.Diagnostics; using System.Xml.Serialization; #if WEB_EXTENSIONS_CODE namespace System.Web.Compilation.WCFModel #else namespace Microsoft.VSDesigner.WCFModel #endif { #if WEB_EXTENSIONS_CODE internal class SvcMapFile : MapFile #else [CLSCompliant(true)] public class SvcMapFile : MapFile #endif { private SvcMapFileImpl _impl; public SvcMapFileImpl Impl { get { return _impl; } } public SvcMapFile() { _impl = new SvcMapFileImpl(); } public SvcMapFile(SvcMapFileImpl impl) { Debug.Assert(impl != null, "impl is null!"); _impl = impl; } public override string ID { get { return _impl.ID; } set { _impl.ID = value; } } public override List<MetadataSource> MetadataSourceList { get { return _impl.MetadataSourceList; } } public override List<MetadataFile> MetadataList { get { return _impl.MetadataList; } } public override List<ExtensionFile> Extensions { get { return _impl.Extensions; } } public ClientOptions ClientOptions { get { return _impl.ClientOptions; } } } [XmlRoot(Namespace = SvcMapFileImpl.NamespaceUri, ElementName = "ReferenceGroup")] #if WEB_EXTENSIONS_CODE internal class SvcMapFileImpl #else [CLSCompliant(true)] public class SvcMapFileImpl #endif { public const string NamespaceUri = "urn:schemas-microsoft-com:xml-wcfservicemap"; private string _id; private ClientOptions _clientOptions; private List<MetadataSource> _metadataSourceList; private List<MetadataFile> _metadataList; private List<ExtensionFile> _extensionFileList; [XmlAttribute] public string ID { get { if (_id == null) { _id = Guid.NewGuid().ToString(); } return _id; } set { if (value == null) { throw new ArgumentNullException("value"); } _id = value; } } [XmlElement(ElementName = "ClientOptions", Order = 0)] public ClientOptions ClientOptions { get { if (_clientOptions == null) { _clientOptions = new ClientOptions(); } return _clientOptions; } set { if (value == null) { throw new ArgumentNullException("value"); } _clientOptions = value; } } [XmlArray(ElementName = "MetadataSources", Order = 1)] [XmlArrayItem("MetadataSource", typeof(MetadataSource))] public List<MetadataSource> MetadataSourceList { get { if (_metadataSourceList == null) { _metadataSourceList = new List<MetadataSource>(); } return _metadataSourceList; } } [XmlArray(ElementName = "Metadata", Order = 2)] [XmlArrayItem("MetadataFile", typeof(MetadataFile))] public List<MetadataFile> MetadataList { get { if (_metadataList == null) { _metadataList = new List<MetadataFile>(); } return _metadataList; } } [XmlArray(ElementName = "Extensions", Order = 3)] [XmlArrayItem("ExtensionFile", typeof(ExtensionFile))] public List<ExtensionFile> Extensions { get { if (_extensionFileList == null) { _extensionFileList = new List<ExtensionFile>(); } return _extensionFileList; } } } }