我漂亮的新的而结合,这里是什么,而是描述的。

  • TransientBehavior-一个新的类型的实例,将创建的每一个时间要求。
  • SingletonBehavior-只有一个单一类型的实例,将创建,以及同样的实例将返回的每个后续请求。
  • OnePerThreadBehavior-一个实例类型将建立每线。
  • OnePerRequestBehavior-一个实例类型将建立每网的请求,并将被销毁的请求时结束。

如果我想要绑数为(它,我应该使用SingletonBehavior因为我只需要一个sql成员资格提供商?

有帮助吗?

解决方案

ASP.Net 已经提供了一个静态的实例目前的成员提供者通过静 成员资格 类及其静态 供应商 财产。结合可能会在你的Application_Start方法和看事情是这样的:

Bind<MembershipProvider>()
  .ToMethod(ctx => Membership.Provider);

再次,因为 Memberhip.供应商 是一个静态的,它就像一个单独的,所以该行为的尝试应用并不真正的问题一样多。

通过不指定任何行为,在上述段,而是将默认为一个瞬时行为。在这种有约束力,我相信,将金额调lambda返回 成员资格。供应商 每次它需要注射一个 类型。

我想可能有一个参数,用于明确指定一个单一的行为而可能会"高速缓冲存储器"的返回值lambda第一时间需要注射一个 , 在效果的节省开销的执行lambda。我不是100%肯定的如何,而是将工作在这种情况,但它似乎是合理的,它会。

所有的说,我的个人爱好就是使用 OnePerRequestBehavior, 这样我知道而将呼叫我的氧一次为每个请求。不知道这是必要的,但我喜欢这个想法得到供应商从 成员资格。供应商 一旦每个请求,因为我猜你不能使假设关于如何或何时 成员资格。供应商 让的设定的,虽然你可能可以发现,如果你挖出足够的反射镜。

Bind<MembershipProvider>()
  .ToMethod(ctx => Membership.Provider)
  .Using<OnePerRequestBehavior>();

好运气。对不起你的问题坐在这里这么久!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top