Tôi đang sử dụng CTP tháng 7 của .Net RIA Services trong một ứng dụng ASP.Net với một số thành phần Silverlight. Tôi gọi RIA Services từ Silverlight..Net RIA Services: DomainService cần một trình tạo thông số không?
Sự cố của tôi nảy sinh khi tôi cố gắng sử dụng tính năng Thống nhất và chèn phụ thuộc hàm dựng trong Dịch vụ miền của tôi (đối tượng LinqToEntitiesDomainService). Ứng dụng Silverlight bây giờ phàn nàn về việc không có một hàm tạo parameterless.
Tôi không muốn có một hàm tạo tham số, tôi muốn Unity giải quyết các đối số hàm tạo. Điều này có thể không? Tôi có làm điều gì sai? Hoặc tôi nên tìm một cách khác để tiêm đối số constructor của tôi?
public class DashboardService : LinqToEntitiesDomainService<DashboardEntities>
{
private IUserService userService;
public DashboardService(IUserService userService)
: base()
{
if (userService == null)
{
throw ExceptionBuilder.ArgumentNull("userService");
}
this.userService = userService;
}
...
Đây là lỗi tôi nhận được:
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
Tôi đang tìm kiếm. Cảm ơn vì điều đó :) – Davita