J'utilise le CTP de juillet des services .Net RIA dans une application ASP.Net avec des composants Silverlight. J'appelle les services RIA de Silverlight.Services .Net RIA: DomainService a besoin d'un constructeur sans paramètre?
Mon problème est survenu lorsque j'ai essayé d'utiliser l'injection de dépendance Unity et constructor dans mon service de domaine (un objet LinqToEntitiesDomainService). L'application Silverlight se plaint maintenant de ne pas avoir de constructeur sans paramètre.
Je ne veux pas avoir un constructeur sans paramètre, je veux que Unity résolve les arguments du constructeur. Est-ce possible? Est-ce que je fais quelque chose de mal? Ou devrais-je trouver un autre moyen d'injecter mes arguments constructeur?
public class DashboardService : LinqToEntitiesDomainService<DashboardEntities>
{
private IUserService userService;
public DashboardService(IUserService userService)
: base()
{
if (userService == null)
{
throw ExceptionBuilder.ArgumentNull("userService");
}
this.userService = userService;
}
...
Voici l'erreur que je reçois:
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
Je le cherchais. Merci pour ça :) – Davita