ResourceCollectionInfo.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / NetFx35 / System.ServiceModel.Web / System / ServiceModel / Syndication / ResourceCollectionInfo.cs / 1 / ResourceCollectionInfo.cs

                            //------------------------------------------------------------ 
// Copyright (c) Microsoft Corporation.  All rights reserved.
//-----------------------------------------------------------

namespace System.ServiceModel.Syndication 
{
    using System.Collections.ObjectModel; 
    using System.Runtime.Serialization; 
    using System.Xml.Serialization;
    using System.Collections.Generic; 
    using System.Xml;

    public class ResourceCollectionInfo : IExtensibleSyndicationObject
    { 
        static IEnumerable singleEmptyAccept;
        Collection accepts; 
        Uri baseUri; 
        Collection categories;
        ExtensibleSyndicationObject extensions = new ExtensibleSyndicationObject(); 
        Uri link;
        TextSyndicationContent title;

        public ResourceCollectionInfo() 
        {
        } 
 
        public ResourceCollectionInfo(string title, Uri link)
            : this((title == null) ? null : new TextSyndicationContent(title), link) 
        {
        }

        public ResourceCollectionInfo(TextSyndicationContent title, Uri link) 
            : this(title, link, null, null)
        { 
        } 

        public ResourceCollectionInfo(TextSyndicationContent title, Uri link, IEnumerable categories, bool allowsNewEntries) 
            : this(title, link, categories, (allowsNewEntries) ? null : CreateSingleEmptyAccept())
        {
        }
 
        public ResourceCollectionInfo(TextSyndicationContent title, Uri link, IEnumerable categories, IEnumerable accepts)
        { 
            if (title == null) 
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("title"); 
            }
            if (link == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("link"); 
            }
            this.title = title; 
            this.link = link; 
            if (categories != null)
            { 
                this.categories = new NullNotAllowedCollection();
                foreach (CategoriesDocument category in categories)
                {
                    this.categories.Add(category); 
                }
            } 
            if (accepts != null) 
            {
                this.accepts = new NullNotAllowedCollection(); 
                foreach (string accept in accepts)
                {
                    this.accepts.Add(accept);
                } 
            }
        } 
 
        public Collection Accepts
        { 
            get
            {
                if (this.accepts == null)
                { 
                    this.accepts = new NullNotAllowedCollection();
                } 
                return this.accepts; 
            }
        } 

        public Dictionary AttributeExtensions
        {
            get 
            {
                return this.extensions.AttributeExtensions; 
            } 
        }
 
        public Uri BaseUri
        {
            get { return this.baseUri; }
            set { this.baseUri = value; } 
        }
 
        public Collection Categories 
        {
            get 
            {
                if (this.categories == null)
                {
                    this.categories = new NullNotAllowedCollection(); 
                }
                return this.categories; 
            } 
        }
 
        public SyndicationElementExtensionCollection ElementExtensions
        {
            get
            { 
                return this.extensions.ElementExtensions;
            } 
        } 

        public Uri Link 
        {
            get { return this.link; }
            set { this.link = value; }
        } 

        public TextSyndicationContent Title 
        { 
            get { return this.title; }
            set { this.title = value; } 
        }

        protected internal virtual InlineCategoriesDocument CreateInlineCategoriesDocument()
        { 
            return new InlineCategoriesDocument();
        } 
 
        protected internal virtual ReferencedCategoriesDocument CreateReferencedCategoriesDocument()
        { 
            return new ReferencedCategoriesDocument();
        }

        protected internal virtual bool TryParseAttribute(string name, string ns, string value, string version) 
        {
            return false; 
        } 

        protected internal virtual bool TryParseElement(XmlReader reader, string version) 
        {
            return false;
        }
 
        protected internal virtual void WriteAttributeExtensions(XmlWriter writer, string version)
        { 
            this.extensions.WriteAttributeExtensions(writer); 
        }
 
        protected internal virtual void WriteElementExtensions(XmlWriter writer, string version)
        {
            this.extensions.WriteElementExtensions(writer);
        } 

        internal void LoadElementExtensions(XmlReader readerOverUnparsedExtensions, int maxExtensionSize) 
        { 
            this.extensions.LoadElementExtensions(readerOverUnparsedExtensions, maxExtensionSize);
        } 

        internal void LoadElementExtensions(XmlBuffer buffer)
        {
            this.extensions.LoadElementExtensions(buffer); 
        }
 
        static IEnumerable CreateSingleEmptyAccept() 
        {
            if (singleEmptyAccept == null) 
            {
                List tmp = new List(1);
                tmp.Add(string.Empty);
                singleEmptyAccept = tmp.AsReadOnly(); 
            }
            return singleEmptyAccept; 
        } 
    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK