如果我的服务有一个基类,例如
public abstract class BaseService<T,R> : ServiceStack.ServiceInterface.Service
{
public R Get(T request)
{
}
}
然后服务堆栈崩溃
试图加载格式不正确的程序。
我认为Servicestack在注册服务时应该忽略抽象的泛型类。有没有办法告诉 servicestack 忽略某些服务类?
如果我的服务有一个基类,例如
public abstract class BaseService<T,R> : ServiceStack.ServiceInterface.Service
{
public R Get(T request)
{
}
}
然后服务堆栈崩溃
试图加载格式不正确的程序。
我认为Servicestack在注册服务时应该忽略抽象的泛型类。有没有办法告诉 servicestack 忽略某些服务类?
默认情况下,ServiceStack 将程序集中的所有类型都包括为服务的候选对象。当它尝试实例化该类时,它会得到该异常。
通过覆盖宿主类中的 CreateServiceManager,您可以注入您自己的类型过滤,以便排除抽象和未封闭的泛型。
protected override ServiceManager CreateServiceManager(params Assembly[] assembliesWithServices)
{
return new ServiceManager(
new Container(),
new ServiceController(
() =>
assembliesWithServices.SelectMany(
assembly => assembly.GetTypes().Where(t => !t.IsAbstract && !t.IsGenericTypeDefinition))));
}