2

Unityを使用しているだけで、ここで説明されている同じ問題に答えがありません。

ISecureDataFormat<>最新の VS2013 (update 2) SPA/Web Api テンプレートに登録しようとしています。

私はもう試した

container.RegisterType(typeof(ISecureDataFormat<>), typeof(SecureDataFormat<>));
container.RegisterType<ISecureDataFormat<AuthenticationTicket>, SecureDataFormat<AuthenticationTicket>>();
container.RegisterType<ISecureDataFormat<AuthenticationTicket>, TicketDataFormat>();

それは「機能します」が、実際にはそうではありません。なぜなら、そのツリーの次の依存関係、IDataSerializer ...、そして次の IDataProtector について不平を言うからです。

4

1 に答える 1

10

次のマッピングで SimpleInjector の次のエラーを解決しました

container.Register<IDataSerializer<AuthenticationTicket>, TicketSerializer>();
container.Register<IDataProtector>(() => new DpapiDataProtectionProvider().Create("ASP.NET Identity"));

どのシリアライザーが使用されたかを把握するために、AccountsController の ISecureDataFormat ジェネリック パラメーターが AuthenticationTicket 型であることに気付きました。IDataSerializer 名前空間をチェックすると、TicketSerializer は IDataSerializer を実装します。

IDataProtector を理解するために、IDataProtector 名前空間をもう一度調べたところ、IDataProtectionProvider の実装が見つかりました。

于 2014-07-15T19:35:06.877 に答える