Я пытаюсь сериализовать класс, который имеет свойство типа TextRange
.Как сериализовать класс с свойством TextRange?
Пример:
public class MyClass
{
private string someProp;
public string SomeProp
{
get { return someProp; }
set { someProp = value; }
}
private TextRange myTextRange;
public TextRange MyTextRange
{
get { return myTextRange; }
set { myTextRange = value; }
}
}
Дела в том, что TextRange
типа не может быть регулярно сериализовать при сериализации всего класса, он имеет особый способ его собственные сериализации себя, я делает это так:
using (MemoryStream ms = new MemoryStream())
{
myTextRange.Save(ms, DataFormats.Xaml, true);
string xaml = Encoding.ASCII.GetString(ms.ToArray());
}
Проблема заключается в том, что я хочу, чтобы класс сериализовать в одну строку XML (строка) с TextRange
имущества и другого имущества вместе. Я не против использования другого метода сериализации (а не xml), но я не вижу, как он решает проблему.
Регулярно я сериализую весь класс сразу, но класс TextRange
не помечен как сериализуемый (без двоичной серилизации) и не имеет пустого конструктора (без хемилирования).
Вот как я это делаю регулярно:
XmlSerializer serializer = new XmlSerializer(typeof(MyClass));
StringWriter stringWriter = new StringWriter();
using (XmlWriter writer = XmlWriter.Create(stringWriter))
{
serializer.Serialize(writer, this);
string xml = stringWriter.ToString();
return xml;
}
Как я могу это сделать?
Что вам нужно от объекта TextRange? –
Я удалил тег из названия вопроса. См. [Здесь] (http://stackoverflow.com/help/tagging) почему. – dymanoid
@HeadhunterXamd текст из RichTextBox с форматированием. – moonlander