Ich verwende das Juli CTP von. Net RIA Services in einer ASP.Net-Anwendung mit einigen Silverlight-Komponenten. Ich rufe die RIA Services von Silverlight an.. NET RIA-Dienste: DomainService benötigt einen Konstruktor ohne Parameter?
Mein Problem entstand, als ich versuchte, die Einheit und Konstruktor Dependency Injection in meinem Domain-Service (ein LinqToEntitiesDomainService Objekt) zu verwenden. Die Silverlight-Anwendung beschwert sich jetzt darüber, keinen parameterlosen Konstruktor zu haben.
Ich will nicht einen parameterlosen Konstruktor haben, ich will Unity die Konstruktorargumente lösen. Ist das möglich? Mache ich etwas falsch? Oder sollte ich einen anderen Weg finden, meine Konstruktorargumente zu injizieren?
public class DashboardService : LinqToEntitiesDomainService<DashboardEntities>
{
private IUserService userService;
public DashboardService(IUserService userService)
: base()
{
if (userService == null)
{
throw ExceptionBuilder.ArgumentNull("userService");
}
this.userService = userService;
}
...
Hier ist der Fehler Ich erhalte:
Webpage error details
User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Timestamp: Tue, 18 Aug 2009 14:34:54 UTC
Message: Unhandled Error in Silverlight 2 Application No parameterless constructor defined for this object. at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)
at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at System.Web.DomainServices.DomainService.DefaultDomainServiceFactory.CreateDomainService(Type domainServiceType, DomainServiceContext context)
at System.Web.Ria.DataServiceFactory.GetDataService(HttpContext context)
at System.Web.Ria.DataServiceFactory.System.Web.IHttpHandlerFactory.GetHandler(HttpContext context, String requestType, String url, String pathTranslated)
Line: 1
Char: 1
Code: 0
URI: http://dev.localhost/Home
Ich suchte danach. Dank dafür :) – Davita