SyndicationLink.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 / SyndicationLink.cs / 1 / SyndicationLink.cs

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

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

    // NOTE: This class implements Clone so if you add any members, please update the copy ctor
    public class SyndicationLink : IExtensibleSyndicationObject 
    {
        Uri baseUri; 
        ExtensibleSyndicationObject extensions = new ExtensibleSyndicationObject(); 
        long length;
        string mediaType; 
        string relationshipType;
        string title;
        Uri uri;
 
        public SyndicationLink(Uri uri)
            : this(uri, null, null, null, 0) 
        { 
        }
 
        public SyndicationLink(Uri uri, string relationshipType, string title, string mediaType, long length)
        {
            if (length < 0)
            { 
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("length"));
            } 
            this.baseUri = null; 
            this.uri = uri;
            this.title = title; 
            this.relationshipType = relationshipType;
            this.mediaType = mediaType;
            this.length = length;
        } 

        public SyndicationLink() 
            : this(null, null, null, null, 0) 
        {
        } 

        protected SyndicationLink(SyndicationLink source)
        {
            if (source == null) 
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("source"); 
            } 
            this.length = source.length;
            this.mediaType = source.mediaType; 
            this.relationshipType = source.relationshipType;
            this.title = source.title;
            this.baseUri = source.baseUri;
            this.uri = source.uri; 
            this.extensions = source.extensions.Clone();
        } 
 
        public Dictionary AttributeExtensions
        { 
            get { return this.extensions.AttributeExtensions; }
        }

        public Uri BaseUri 
        {
            get { return this.baseUri; } 
            set { this.baseUri = value; } 
        }
 
        public SyndicationElementExtensionCollection ElementExtensions
        {
            get { return this.extensions.ElementExtensions; }
        } 

        public long Length 
        { 
            get { return this.length; }
            set 
            {
                if (value < 0)
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value")); 
                }
                this.length = value; 
            } 
        }
 
        public string MediaType
        {
            get { return mediaType; }
            set { mediaType = value; } 
        }
 
        public string RelationshipType 
        {
            get { return relationshipType; } 
            set { relationshipType = value; }
        }

        public string Title 
        {
            get { return title; } 
            set { title = value; } 
        }
 
        public Uri Uri
        {
            get { return uri; }
            set { this.uri = value; } 
        }
 
        public static SyndicationLink CreateAlternateLink(Uri uri) 
        {
            return CreateAlternateLink(uri, null); 
        }

        public static SyndicationLink CreateAlternateLink(Uri uri, string mediaType)
        { 
            return new SyndicationLink(uri, Atom10Constants.AlternateTag, null, mediaType, 0);
        } 
 
        public static SyndicationLink CreateMediaEnclosureLink(Uri uri, string mediaType, long length)
        { 
            return new SyndicationLink(uri, Rss20Constants.EnclosureTag, null, mediaType, length);
        }

        public static SyndicationLink CreateSelfLink(Uri uri) 
        {
            return CreateSelfLink(uri, null); 
        } 

        public static SyndicationLink CreateSelfLink(Uri uri, string mediaType) 
        {
            return new SyndicationLink(uri, Atom10Constants.SelfTag, null, mediaType, 0);
        }
 
        public virtual SyndicationLink Clone()
        { 
            return new SyndicationLink(this); 
        }
 
        public Uri GetAbsoluteUri()
        {
            if (this.uri != null)
            { 
                if (this.uri.IsAbsoluteUri)
                { 
                    return this.uri; 
                }
                else if (this.baseUri != null) 
                {
                    return new Uri(this.baseUri, this.uri);
                }
                else 
                {
                    return null; 
                } 
            }
            else 
            {
                return null;
            }
        } 

        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); 
        } 
    }
} 

// 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