我正在使用 XMLSerialization 通过管道通信过程将数据从基于客户端的 Win7 应用程序传递到我们的服务器(Server 2008 R2)。我被带入这个项目是为了完成之前放弃它的开发人员的努力......因此我目前正在尝试修复 VS2010 中不起作用的 C# 代码。
问题是我无法从“公共部分类测试”中的以下方法获得结果输出的完全序列化。我们在 MS Compact 服务器数据库(名为“Test”)中定义了一个表,它匹配下面的每个项目,并根据两个表中匹配的 TestID 对“Channel”表有一个 FK。EntityCollection 基于它与“Channel”表的关系:
public Test(Guid TestID, String TestName, String TestRemarks, String ScriptPath,
EntityCollection<Channel> TChannels)
{
ID = TestID;
Name = TestName;
Remarks = TestRemarks;
Path = ScriptPath;
Channels = TChannels;
}
以下是如何在方法执行中使用它的示例:
Test T = new Test(NewID, "Test1", "Test_120912-1729",
"C:\\Temp\\TestScript_16.txt", TChannels);
以下是序列化过程的结果:
<DataCore xsi:type="Test">
<ID>bc6a8ef7-c31f-404d-8108-86219d45be63</ID>
<Name>Test1</Name>
<Remarks>Test_120912-1729</Remarks>
<Path>C:\Temp\TestScript_16.txt</Path>
</DataCore>
前四个参数可以很好地序列化,但最后一个(EntityCollection)没有这样做。但是,如果我尝试自己序列化“TChannels”(在“测试”功能之外),每个测试通道的序列化工作完美。我不完全理解利用 XMLserialization 解决此问题的限制/要求。为什么我无法从函数中序列化 EntityCollection< >?
感谢你的协助!