여전히 좋은 답변이 없습니다.
DataContractSerializer serializer = new DataContractSerializer(typeof(Room));
using (SlideLincEntities ctx = new SlideLincEntities())
{
Room roomWithMostSessions = ctx.Room
.OrderByDescending(r => r.Sessions.Count)
.FirstOrDefault();
string fileName = ConfigurationSettings.AppSettings["outputFile"];
Console.WriteLine("Writing data to file '{0}'", fileName);
File.Delete(fileName);
using (Stream fileStream = File.Open(fileName, FileMode.OpenOrCreate))
{
serializer.WriteObject(fileStream, roomWithMostSessions);
}
}
불행하게도, 혼합 생성 된 XML을 읽을 수 없습니다 : 나는 DataContractSerializer 사용하여 XML로 내 EF 클래스의 일부 인스턴스를 직렬화 시도 DataContractSerializer 분명히 블렌드의 단순한 XML 디시리얼라이저를 혼란 XML 심판 표기법을 사용합니다.
는 또한 XAML의 객체 표기법을 사용하여 손 (uggh)에 의해 샘플 데이터를 생성 시도 :
<rs:Room d:IsDataSource="True"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:rs="clr-namespace:SlideLinc.Client.Common.RoomService;assembly=SlideLinc.Client.Common"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
mc:Ignorable="d"
Name="_default" OwnerId="smithkl42"
>
<rs:Room.Owner>
<rs:RegisteredUser x:Name="ken" UserId="ken" Email="[email protected]" FirstName="Ken" LastName="Smith" MaxFileUploadSize="20000" UserName="Ken Smith" />
</rs:Room.Owner>
</rs:Room>
이 더 있었다, 그러나 어떤 이유로, 혼합은 객체 내의 컬렉션에 바인딩 할 것이다 : 나는 돈 왜 XAML 데이터 바인딩 오류가 자동으로 삼키는 지 이유 때문에 알지 못합니다. (내가 XAML 데이터 바인딩을 얼마나 싫어하는지 언급 한 적이 있습니까?)
나는 결국 직선 조인트 XAML 양식 내에서 소량의 데이터를 정의와 함께 갔다 :
<ListBox x:Name="fileListBox" Grid.Row="2" Margin="4" BorderThickness="0" >
<ListBox.ItemTemplate>
<DataTemplate>
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="25" />
<ColumnDefinition Width="150"/>
<ColumnDefinition Width="70" />
<ColumnDefinition Width="5" />
<ColumnDefinition Width="30" />
</Grid.ColumnDefinitions>
<Image Source="/Images/Word.png" Grid.Column="0" Margin="2" />
<TextBlock Text="{Binding OriginalFileName}" Grid.Column="1" VerticalAlignment="Center" />
<HyperlinkButton Content="Share" Grid.Column="2" Margin="4" HorizontalAlignment="Right" VerticalAlignment="Center"/>
<HyperlinkButton Grid.Column="4" Margin="4" HorizontalAlignment="Right" VerticalAlignment="Center" >
<Image Source="/Images/trashcan.png" Width="25" />
</HyperlinkButton>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
<!-- I shouldn't have to do this, but for some reason, I can't get sample data any other way -->
<roomservice:SharedFile OriginalFileName="Some Document.docx" />
<roomservice:SharedFile OriginalFileName="Another document.pptx"/>
</ListBox>
는 그래서 나의 현재의 접근 방식입니다. 매우 우아하지 않습니다. 다른 아이디어를 열어 라.