2014-01-16 29 views
2

我使用ASP.NET MVC 5,并试图用例子来解决一些服务:不能解析使用AppHostBase.ResolveService <T> API中ServiceStack服务4

var authService = AppHostBase.Resolve<AuthService>(); 
authService.RequestContext = System.Web.HttpContext.Current.ToRequestContext(); 
var response = authService.Authenticate(new Auth 
{ 
    UserName = model.UserName, 
    Password = model.Password, 
    RememberMe = model.RememberMe 
}); 

或者我也尝试:

using (var helloService = AppHostBase.ResolveService<HelloService>()) 
{ 
    ViewBag.GreetResult = helloService.Get(name).Result; 
    return View(); 
} 

在我需要注入的RequestContext第一种情况下,所以我尝试这种方法和在第二种情况下我用我的理解具有RequestContext通过Funq自动注入的示例。

ResolveService无法找到当我尝试第二种方法,并在第一种方法RequestContext是不是一个有效的属性。我是否错过了简单的东西,或者API有变化?

+0

没有使用'ServiceStackHost.Instance.Resolve'工作? – Scott

回答

1

由于AppHostBase上不再有ResolveService<T>,因此文档看起来确实是错误的。由于Api的变化,它需要更新。

您可以ServiceStack V4与MVC做到这一点:

var authService = HostContext.Resolve<AuthService>(); 
... 
+0

这个技巧。谢谢。 – Nadeem

+1

@Scott或更短的别名** HostContext.ResolveService ()**。 – mythz

+0

@mythz好的通话,这很容易。 – Scott