|
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------
namespace System.ServiceModel.Syndication
{
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Serialization;
using System.Runtime.CompilerServices;
// NOTE: This class implements Clone so if you add any members, please update the copy ctor
[TypeForwardedFrom("System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35")]
public class TextSyndicationContent : SyndicationContent
{
string text;
TextSyndicationContentKind textKind;
public TextSyndicationContent(string text) : this(text, TextSyndicationContentKind.Plaintext)
{
}
public TextSyndicationContent(string text, TextSyndicationContentKind textKind)
{
if (!TextSyndicationContentKindHelper.IsDefined(textKind))
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("textKind"));
}
this.text = text;
this.textKind = textKind;
}
protected TextSyndicationContent(TextSyndicationContent source)
: base(source)
{
if (source == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("source");
}
this.text = source.text;
this.textKind = source.textKind;
}
public string Text
{
get { return this.text; }
}
public override string Type
{
get
{
switch (this.textKind)
{
case TextSyndicationContentKind.Html:
return Atom10Constants.HtmlType;
case TextSyndicationContentKind.XHtml:
return Atom10Constants.XHtmlType;
default:
return Atom10Constants.PlaintextType;
}
}
}
public override SyndicationContent Clone()
{
return new TextSyndicationContent(this);
}
protected override void WriteContentsTo(XmlWriter writer)
{
string val = this.text ?? string.Empty;
if (this.textKind == TextSyndicationContentKind.XHtml)
{
writer.WriteRaw(val);
}
else
{
writer.WriteString(val);
}
}
}
}
|