どこかでホストされているアプリケーション(webhostingworld.net)があり、ジレンマがあります。オフライン処理を実行するツール(.net 4 anycpuの単純なプレーンexe)があり、「ParallelPleskPanel11.0.9」によって「スケジュールされたタスク」として開始されます。ジェネリックメソッドを追加するまで、すべてうまくいきました。
- 基本的に、これはデータベースからjson文字列を読み取り、それを返す単なるダミーメソッドです。
- プロセスは終了するだけで、例外はスローされません。ログを場所から場所へと配置する必要がありました。最後に行ったのは、このメソッドとその中の最初のメソッドを呼び出す前にログを配置することでした。このメソッドを呼び出す前のロギングはありますが、メソッド内のロギングはありません。
- メソッド宣言は次のようになります。
public T Get<T>(string id);
- 私は彼らにいくつかのフィードバックを求めるために連絡しました-多分彼らはシステムログで何かを見たかもしれませんが、彼らがいくらかの光をもたらすとは思えません。
- 私のコンピューターでは正常に動作します(常にこのように発生するのではありませんか?)。
- すべてのCPUフレーバー(x86、x64、anyCPU)でコンパイルしようとしましたが、同じ動作をします...
私はideeasを使い果たしました。私はいつでも汎用オブジェクトを使おうと試みることができます(おそらくこれはコードサイズのpovからより良いアイデアかもしれません-しかしこれは別の主題です)...しかしこれが起こっている理由を見つけることができなかったのでそれはかなりイライラします...では、何が起こっているのかについてのアイデアはありますか?
ありがとう!
更新:コードは次のようになります:
public T Get<T>(string id)
{
Log.Debug("mary still has that little lamb");
string jsonString = GetASimpleStringFromDatabase(id); // id has values like "ID", "TEMPPATH", "MAIL", etc;
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
{
return ser.ReadObject(ms);
}
}
そして、呼び出しは次のようになります。
Log.Debug("Let's check if Mary has that little lamb");
MyClass c = deserializer.Get<MyClass>(stuff);
最初のロギングステートメントが表示され(「確認しましょう」)、2番目のステートメントは表示されません(「まだあります」)。.netフレームワークは、私のマシン上のフレームワークと同じです(少なくともバージョンに関係する点では)。確認する必要のあるフラグがあるかどうか疑問に思っています...
更新:申し訳ありませんが、サポートの担当者は応答が非常に遅いです。これについては答えがありません。'テンプレート'なしで残しておきます。:-(