2012-04-24 45 views
2

我有一个文件上传逻辑和一个非常具体的业务规则。根据他们,我应该解析我的文件模型行,看起来像“标题:{处理field1},{处理field2},{处理field3},{处理field4},{处理field5},{处理field6},{处理field7 },{processed field8}等等19个参数“这是最初的自定义序列化。解析对象到特定模型的设计模式,反之亦然

而且我也应该有可能解析这一行回到对象。所以,问题是编纂这些员工的共同想法是什么?

因为现在解析模型到行,我只是使用string.format有很多选项,并且为了解析行到模型,我用''分割行,然后用部分信息处理将它分配给模型字段。但在这个实现中,有很多低级别的工作,一些硬编码的位置以及很多对我来说看起来不太好的东西。

回答

1

你应该把你的序列化/反序列化到一个自定义的序列化程序中。您可以遵循与.net库中其他序列化程序相同的模式并实施IFormatterinterface。这会为您提供一个通用的接口,你可以用它来流和从文件(或流):

using (var fileStream = new FileStream(fileName, FileMode.Create)) 
{ 
    var formatter = new CustomFormatter(); 
    formatter.Serialize(fileStream, objectToSerialize); 
} 

using (var fileStream = new FileStream(fileName, FileMode.Read)) 
{ 
    var formatter = new CustomFormatter(); 
    return (CustomType)formatter.DeSerialize(fileStream); 
} 

你可以看到在此下载

2

这里不会涉及任何魔法,尤其是因为您将对象序列化为非标准格式。你可能不得不忍受这个'丑陋'的代码。

+0

是的,看起来像一个custom formatter的例子那。我不喜欢它 - 这就是为什么我问。 – Ph0en1x 2012-04-24 17:37:10