2012-04-24 60 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

相關問題