2

ファイルアップロードロジックと非常に具体的なビジネスルールがあります。そして、それらに従って、ファイルモデルを行に解析する必要があります。これは、「ヘッダー:{処理済みフィールド1}、{処理済みフィールド2}、{処理済みフィールド3}、{処理済みフィールド4}、{処理済みフィールド5}、{処理済みフィールド6}、{処理済みフィールド7 }、{processedfield8}など19個のパラメータ"最初はカスタムシリアル化です。

また、この行を解析してオブジェクトに戻す可能性もあるはずです。それで、問題は、そのようなスタッフをコーディングするための一般的な考えは何ですか?

モデルを行に解析するには、多くのオプションを指定してstring.formatを使用し、行をモデルに解析するには、行を「、」で分割し、情報の一部を操作してモデルフィールドに割り当てます。しかし、この実装では、多くの低レベルの作業、ハードコードされた位置、および私にはきれいに見えないものがたくさんあります。

4

2 に答える 2

2

特にオブジェクトを非標準形式にシリアル化するため、ここで魔法が関与することはありません。おそらく、「醜い」コードを使用する必要があります。

于 2012-04-24T17:35:41.067 に答える
1

シリアル化/逆シリアル化をカスタムシリアライザー内に配置する必要があります。.netライブラリの他のシリアライザーと同じパターンに従い、IFormatter インターフェースを実装できます。これにより、ファイル(または任意のストリーム)との間でストリーミングを行うために使用できる共通のインターフェイスが提供されます。

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);
}

このダウンロードでカスタムフォーマッタの例を見ることができます

于 2012-04-24T19:56:25.990 に答える