У меня нет опыта работы с RIA Web Services как таковой, но после быстрого сканирования документации я бы предложил сделать следующее. Создайте реализацию IDomainServiceFactory для Ninject.
public class NinjectDomainServiceFactory : IDomainServiceFactory
{
private readonly IKernel _kernel;
public NinjectDomainServiceFactory(IKernel kernel)
{
_kernel = kernel;
}
public DomainService CreateDomainService(
Type domainServiceType, DomainServiceContext context)
{
var service = _kernel.Get(domainServiceType);
service.Initialize(context);
return service;
}
public void ReleaseDomainService(DomainService domainService)
{
domainService.Dispose();
}
}
Зарегистрируйте фабрику пользовательских доменных служб с помощью класса DomainService в Application_Start.
public void Application_Start(object sender, EventArgs e)
{
var kernel = CreateKernel();
DomainService.Factory = new NinjectDomainServiceFactory(kernel);
}
Убедитесь, что вы зарегистрировали свои доменные службы и все зависимости в ядре. Репозиторий IPerson должен быть вставлен в конструктор PersonService.
[EnableClientAccess]
public class PersonService : DomainService
{
private readonly IPersonRepository _personRepository;
public PersonService(IPersonRepository personRepository)
{
_personRepository = personRepository;
}
}
Надеюсь, это будет полезно, так как я сам не пробовал решение.