87 lines
2.7 KiB
C#
87 lines
2.7 KiB
C#
|
//------------------------------------------------------------
|
||
|
// 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);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|