Member 13196544 Ответов: 1

Подкласс сериализации в атрибуте


Можно ли сериализовать подкласс, как только строку атрибута, а не как содержимое?

Что я уже пробовал:

Я сериализую сетку с пользовательским управлением с помощью этого кода

Dim outstr As New Text.StringBuilder()
Dim settings As New Xml.XmlWriterSettings()
settings.Encoding = Text.Encoding.Default
settings.Indent = True
settings.IndentChars = (ControlChars.Tab)
settings.NewLineChars = vbCrLf
settings.NewLineOnAttributes = True
settings.OmitXmlDeclaration = True

Dim dsm As New Markup.XamlDesignerSerializationManager(Xml.XmlWriter.Create(outstr, settings))
dsm.XamlWriterMode = Markup.XamlWriterMode.Expression
Markup.XamlWriter.Save(myGrid, dsm)
File.WriteAllText(PathFile, outstr.ToString())


Класс для сериализации
Public Class clsBrush
    Public Property BrushText As String
        Get
            Return _myBrush.ToString
        End Get
        Set(value As String)
            _myBrush = Brushes.AliceBlue
        End Set
    End Property
End Class


Фактическая сериализация:
<Grid
	Name="myGrid"
	Margin="0,0,0,30" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:wa="clr-namespace:WpfApp1;assembly=WpfApp1">
	<wa:MyRectangle
		Position="218.118443788084,112.190399478744,0,0">
		<wa:MyRectangle.Fill>
			<wa:clsBrush>#FFEEE8AA</wa:clsBrush>
		</wa:MyRectangle.Fill>
	</wa:MyRectangle>
</Grid>


Желаемая сериализация, трасформа
<wa:MyRectangle.Fill>
	<wa:clsBrush>#FFEEE8AA</wa:clsBrush>
</wa:MyRectangle.Fill>

в
Fill="#FFEEE8AA"

Желаемый результат
<Grid
	Name="myGrid"
	Margin="0,0,0,30" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:wa="clr-namespace:WpfApp1;assembly=WpfApp1">
	<wa:MyRectangle
		Position="218.118443788084,112.190399478744,0,0"
		Fill="#FFEEE8AA"/>
</Grid>

1 Ответов

Рейтинг:
0

Graeme_Grant

Я думаю, что понимаю, о чем вы просите... Этот поиск Google[^] найти это: TutorialGenius.com сериализовать и десериализовать любой зависимостей в WPF в XAML и обратно![^]


Member 13196544

Выходная сериализация такая же.

Я хочу trasform сериализацию класса как сериализацию строк

&ЛТ;Вашингтон:myrectangle.заполнить и GT;
<wa:clsbrush>#FFEEEE8AA


К

Fill="#FFEEE8AA"

Мне нужно только улучшить чтение и сжать код