2

C# プロジェクトと Script# の間で多くのビジネス ロジック コードを共有しています。

script# コア ライブラリの重大な変更 (DateTime クラスが Date になったとき) 以来、状況は悪化しました。

誰もそれを処理する一般的な防弾ソリューションを思いつきましたか? 何人かの人々がラッパーを書いたと言っているのを読みましたが、ソースを示した人は誰もいませんでした。0 からの月数をカウントする JS Date や 1 からの C# DateTime など、いくつかの落とし穴がある可能性があるため、それほど簡単なラッパーではありません...

元のスクリプトをフォークし、Date を DateTime に名前を変更することは、実際にはオプションではありません。その場合、2 つのプロジェクト (自分のプロジェクトとフォーク) で作業する必要があるためです。

参考文献:

PS #ifdef ソリューションを認識していますが、提案しないでください;)

4

1 に答える 1

0

可能性のあるアプローチの 1 つは、ティック カウントだけをデータ モデル内に long として格納することです。次に、ティックを日付/日時として解釈し、探している API を提供する一連のヘルパーを使用します。ちょっと考えてみてください...セマンティックの違いを考えると、コードを共有したい人には何らかのラッパー/抽象化がとにかく必要であり、これはそれを構築するための1つのアプローチです。

このアプローチの副次的な利点の 1 つは、json との間のシリアル化が簡素化されることです... a) JSON には日付リテラル構文がないため、b) ティックの精度がスクリプトと .net 間で異なるため...少なくとも、.net ティック カウントを使用し、クライアントで更新されていない場合は、精度を失うことなく往復するだけです。

これを構築した場合、これをコミュニティに共有するのは興味深いことです。

于 2012-08-19T17:48:34.320 に答える