4

次のユース ケースがあります。ProtoContract クラスで装飾されたアセンブリがいくつかあり、アセンブリに基づいて proto ファイルを生成したいと考えています。では、問題はそれをどのように行うことができるかです。

私の最初の意図は Serailizer.GetProto を使用することでしたが、実行時のクラス型しか知らないため、これは私にとっては機能しない汎用メソッドです。

また、r480 で GetProto が実装されていないのはなぜですか?

私はVS08/10についても知っていますが、私のシナリオでは役に立たないようです。

前もって感謝します。

4

2 に答える 2

5

Serializer.GetProto少し反省してメソッドを使用できます。

var method = typeof(Serializer).GetMethod("GetProto").MakeGenericMethod(type);
Func<string> getProto = Delegate.CreateDelegate(typeof(Func<string>), method);
var proto = getProto();
于 2012-07-03T11:13:25.717 に答える
4

また、なぜr480でGetProtoが影響を受けないのですか?

限られた時間とたくさんのリクエストがあるからです。GetProto最近、たくさんの人から質問がありましたので、リストの上位に上げています。私は、利益、起こりそうな使用に対する努力の観点から、機能に関する作業を優先する必要があります。GetProtoシリアル化の「コア」ではありませんが、引き続きサポートしたいと思います。努力が必要です。この機能の使用法は、v2コードベースを遅らせることが正当化されるとは思わなかったようなものです。

幸いなことに、v2のコアは非ジェネリックであり、互換性のために古いジェネリックAPIが純粋に維持されています。したがって、これを実装すると、ジェネリックなしで完全に使用できるようになります。


更新:これの実験的なカットはr545でコミットされました。v1テストに合格しますが、この機能に関するv1テストはそれほど多くありませんでした。だから:私はこれのためにもっとテストをまもなく追加するでしょう。

于 2012-07-03T11:49:17.900 に答える