0

私は NancyFx で FluentValidation を使用しています。現在のユーザーに対して、現在のコンテキストに対していくつかのデータを検証したいと考えています。残念ながら、そのような情報を登録してコンテナー (私は StructureMap を使用しています) から取得する方法の例を見つけることができません。

Docs 「コンテキストはナンシーのほとんどの場所で利用できるはずなので、現在のリクエストを呼び出しているユーザーの ID を取得することは問題になりません。」しかし、コンテナにはデフォルトではありません。

リンク、方向はありますか?

あなたの助けに感謝します。

4

2 に答える 2

2

コンテキストは、ユーザー ID と同様にリクエスト スコープであり、ブートストラッパーでオーバーライドできる RequestStartup メソッドに渡されます。コンテナーは RequestStartup にも渡されるため、要求ごとに必要なものを登録し、登録するオブジェクトを構築するときにコンテキストを使用できます。

于 2015-03-11T16:12:53.490 に答える
0

線に沿った何か:

リクエストごとに ICurrentContextProvider を登録します。ICurrentContextProvider は IUserIdentity のプロパティを 1 つしか持つことができませんが、set と get の 2 つの明示的なメソッドで作成することをお勧めします。これにより、二重の初期化などを防ぐことができます。

IUserMapper を作成し (そのリクエストもスコープ指定されていると仮定)、ICurrentContextProvider に依存するようにし、マッピング後にプロパティを設定します。

その後、ICurrentContextProvider に依存するすべてのコードが、設定したプロパティにアクセスできるようになります。

于 2015-03-18T01:17:08.183 に答える