.Net RIA Services: DomainService benötigt einen parameterlosen Konstruktor?

Ich verwende das Juli-CTP von .Net RIA Services in einer ASP.Net-Anwendung mit einigen Silverlight-Komponenten. Ich rufe die RIA-Dienste von Silverlight aus an.

Mein Problem trat auf, als ich versuchte, Unity- und Konstruktorabhängigkeitsinjektion in meinem Domänendienst (einem LinqToEntitiesDomainService-Objekt) zu verwenden. Die Silverlight-Anwendung beklagt sich jetzt darüber, dass sie keinen parameterlosen Konstruktor hat.

Ich möchte keinen parameterlosen Konstruktor haben. Ich möchte, dass Unity die Konstruktorargumente auflöst. Ist das möglich? Mache ich etwas falsch? Oder sollte ich eine andere Möglichkeit finden, meine Konstruktorargumente einzufügen?

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, den 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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage