Windows Form to XML
От: goodlogin  
Дата: 16.01.07 17:09
Оценка:
Кто занимался сераализацыей контролов в XML? Пожалуйста скажыте какой путь для етого Вы вибрали?

1.С помощю XmlSerializer
2.Через рефлексию
3.Штото свое...

Мне нужно сериализовать форму и все ее содержымоэ в XML и я не знаю каким способом ето лучше зделать штоб без дополнительного гемороя
Кто делал, поделитесь...

17.01.07 12:45: Перенесено модератором из '.NET' — TK
Re: Windows Form to XML
От: _FRED_ Черногория
Дата: 16.01.07 18:34
Оценка:
Здравствуйте, goodlogin, Вы писали:

G>Кто занимался сераализацыей контролов в XML?


Что под этим понимается? Где и как будет использоваться "сериализация"?
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[2]: Windows Form to XML
От: Аноним  
Дата: 16.01.07 19:33
Оценка:
Привет синхронизаторам! http://www.gotdotnet.ru/Forums/Common/418772.aspx
Re[3]: Windows Form to XML
От: Аноним  
Дата: 16.01.07 19:44
Оценка:
Вот к примеру как сериализуется нода (графический элемент) с TreeView и PictureBox-ом на ней (в PictureBox-e изображение):

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
[skipped]
  <Anchor>Top, Bottom, Left, Right</Anchor>
  <Controls IsList="True" Count="1">
    <Item1 Ref="1" Type="Page" IsKey="True">
      <BackColor>Window</BackColor>
      <Controls IsList="True" Count="1">
        <Item1 Ref="2" Type="RoundRectangleNode" IsKey="True">
          <BackgroundColor>Window</BackgroundColor>
          <Controls IsList="True" Count="3">
            <Item1 Ref="3" Type="SelectionOverlay" IsKey="True">
              <ContextMenu />
              <Controls IsList="True" Count="0" />
              <Cursor>SizeAll</Cursor>
              <Location>210, 9</Location>
              <Name />
              <Size>171, 163</Size>
              <TabIndex>6</TabIndex>
            </Item1>
            <Item2 Ref="4" Type="System.Windows.Forms.PictureBox" IsKey="True">
              <BackgroundImage IsImage="True" Length="644285">
               /9j/4R/+RXhpZgAAS[skipped: поток в текстовом представлении]
              </BackgroundImage>
              <Controls IsList="True" Count="0" />
              <Location>11, 15</Location>
              <Name />
              <Size>195, 150</Size>
              <TabIndex>3</TabIndex>
              <TabStop>False</TabStop>
            </Item2>
            <Item3 Ref="5" Type="System.Windows.Forms.TreeView" IsKey="True">
              <Controls IsList="True" Count="0" />
              <Location>216, 15</Location>
              <Name />
              <Nodes IsList="True" Count="5">
                <Node01 Ref="6" Type="System.Windows.Forms.TreeNode" IsKey="True">
                  <Name>Node0</Name>
                  <Text>Node0</Text>
                </Node01>
                <Node12 Ref="7" Type="System.Windows.Forms.TreeNode" IsKey="True">
                  <Name>Node1</Name>
                  <Text>Node1</Text>
                </Node12>
                <Node23 Ref="8" Type="System.Windows.Forms.TreeNode" IsKey="True">
                  <Name>Node2</Name>
                  <Text>Node2</Text>
                </Node23>
                <Node34 Ref="9" Type="System.Windows.Forms.TreeNode" IsKey="True">
                  <Name>Node3</Name>
                  <Text>Node3</Text>
                </Node34>
                <Node45 Ref="10" Type="System.Windows.Forms.TreeNode" IsKey="True">
                  <Name>Node4</Name>
                  <Text>Node4</Text>
                </Node45>
              </Nodes>
              <Size>159, 151</Size>
              <TabIndex>5</TabIndex>
            </Item3>
          </Controls>
          <DockPoints IsList="True" Count="4">
            <Item1 Ref="11" Type="DockPoint" IsKey="True">
              <HeadConnections IsList="True" Count="0" />
              <Location>128, 221</Location>
              <TailConnections IsList="True" Count="0" />
            </Item1>
            <Item2 Ref="12" Type="DockPoint" IsKey="True">
              <HeadConnections IsList="True" Count="0" />
              <Location>530, 221</Location>
              <TailConnections IsList="True" Count="0" />
            </Item2>
            <Item3 Ref="13" Type="DockPoint" IsKey="True">
              <HeadConnections IsList="True" Count="0" />
              <Location>329, 56</Location>
              <TailConnections IsList="True" Count="0" />
            </Item3>
            <Item4 Ref="14" Type="DockPoint" IsKey="True">
              <HeadConnections IsList="True" Count="0" />
              <Location>329, 386</Location>
              <TailConnections IsList="True" Count="0" />
            </Item4>
          </DockPoints>
          <Font>Microsoft Sans Serif, 8.25pt</Font>
          <ForegroundColor>ControlText</ForegroundColor>
          <Location>136, 64</Location>
          <Name />
          <Size>392, 320</Size>
          <StaticFrameColor>170, 170, 170</StaticFrameColor>
          <Text />
        </Item1>
      </Controls>
      <Elements IsList="True" Count="0" />
      <GridColor>LightGray</GridColor>
      <GridSize>8, 8</GridSize>
      <Name />
      <PageParams>Orientation = Portrait; Width = 793; Height = 1122</PageParams>
      <SelectedNode IsRef="2" />
      <Size>793, 1122</Size>
    </Item1>
  </Controls>
  <CurrentPage IsRef="1" />
  <Document Ref="15" Type="Document" IsKey="True">
    <Name>Untitled</Name>
    <Path>E:\My Documents\Untitled.ngc</Path>
  </Document>
  <Name />
  <Pages IsList="True" Count="1">
    <Item IsRef="1" />
  </Pages>
  <TabIndex>0</TabIndex>
[skipped]
Re: Windows Form to XML
От: TK Лес кывт.рф
Дата: 16.01.07 19:46
Оценка: +1
Hello, "goodlogin"
> Кто занимался сераализацыей контролов в XML? Пожалуйста скажыте какой путь для етого Вы вибрали?
>
> 1.С помощю XmlSerializer
> 2.Через рефлексию
> 3.Штото свое...
>
> Мне нужно сериализовать форму и все ее содержымоэ в XML и я не знаю каким способом ето лучше зделать штоб без дополнительного гемороя
>

XmlSerializer лучше отбросить — Windows.Forms элементы не предназначены для использования вместе с ним. Для использования рефлексии нужно знать что именно надо рефлексировать. Так что в общем случае, рефлексия сама по себе тоже работать не будет...

Отстается только вариант что-то свое. Это может получиться наименее затратный по геморроям подход.

ЗЫ
Вообще, Windows Forms элементы управления умеют сериализоваться изначально. Называется эта CodeDomSerializer. Можно попробовать использовать его для получения Xml.
Posted via RSDN NNTP Server 2.0
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re: Windows Form to XML
От: D.Triton Украина  
Дата: 17.01.07 10:14
Оценка:
Здравствуйте, goodlogin, Вы писали:

G>Кто занимался сераализацыей контролов в XML? Пожалуйста скажыте какой путь для етого Вы вибрали?


G>1.С помощю XmlSerializer

G>2.Через рефлексию
G>3.Штото свое...

G>Мне нужно сериализовать форму и все ее содержымоэ в XML и я не знаю каким способом ето лучше зделать штоб без дополнительного гемороя

G>Кто делал, поделитесь...

Не уверен, что это поможет,
но думаю стоит посмотреть в сторону XAML.

Гдето в сэмплах SDK видел. как раскручивают текущее состояние окна обратно в XAML (так сказать было реализовано "онлайн редактирование окна")
Windows Form to XML
От: Аноним  
Дата: 16.01.07 19:33
Оценка:
Если просто сохранить layout, то рекурсивно обходишь контролы и вручную сериализуешь. Если нужны разного рода навороты, типа сериализации коллекций, изображений и т.д., то придется свой сериалзитор писать с графами и прочей лабудой. Могу продать. У меня есть готовая реализация, хорошо обкатанная.

Две капли морфия облегчат тебе жизнь.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.