这是服务:TypeInitializationException试图使用夏普架构ServiceStack
public class InvoiceDetailsService : RestServiceBase<InvoiceDetails>
{
public override object OnGet(InvoiceDetails request)
{
return new InvoiceDetailsResponse();
}
}
而这些服务模型:
[DataContract]
[Description("Invoice Details web service.")]
[Route("/invoicedetails")] //Optional: Define an alternate REST-ful url for this service
[Route("/invoicedetails/{Id}")]
[Route("/invoicedetails/{Id*}")]
public class InvoiceDetails
{
public string Id { get; set; }
}
public class InvoiceDetailsResponse : IHasResponseStatus
{
public InvoiceDetailsResponse()
{
this.ResponseStatus = new ResponseStatus();
}
public Invoice Invoice { get; set; }
public ResponseStatus ResponseStatus { get; set; }
}
这是发票类,夏普架构的实体继承类。 (我已删除了所有其他属性试图事业隔离。)http://code.google.com/p/sharp-architecture/source/browse/trunk/src/SharpArch/SharpArch.Core/DomainModel/Entity.cs
public class Invoice : Entity
{
public virtual DateTime Date { get; set; }
public virtual Double AmountPaid { get; set; }
}
我应该得到一个序列化的空InvoiceDetailsResponse返回给浏览器。
我得到的错误是这个,如果发票是一个简单的POCO而不是从实体派生的话,我不会得到这个错误。
关于“ServiceStack.Text.Json.JsonWriter
1' threw an exception.</Message><StackTrace> at ServiceStack.Text.Json.JsonWriter
1.WriteFn()在ServiceStack.Text.Json.JsonWriter.GetWriteFn(类型类型)在ServiceStack.Text.JsonSerializer.SerializeToString --TypeInitializationExceptionThe类型初始化(对象e:\ Desktop \ Dev Projects \ ServiceStack-master \ ServiceStack.ServiceModel.Serialization.JsonDataContractSerializer.SerializeToString [T](T obj)中的ServiceStack.Text.JsonSerializer.SerializeToString [T](T值) src \ ServiceStack.Common \ ServiceModel \ Serialization \ JsonDataContractSerializer.cs:e:\ Desktop \ Dev Projects \ ServiceStack-master中ServiceStack.WebHost.Endpoints.Formats.HtmlFormat.SerializeToStream(IRequestContext requestContext,Object response,IHttpResponse httpRes) \ src \ ServiceStack \ WebHost.Endpoints \ Formats \ HtmlFormat.cs:line 49 a在e:\ Desktop \ Dev Projects \ ServiceStack-master \ src \中,ServiceStack.WebHost.Endpoints.Extensions.HttpResponseExtensions.WriteToResponse(IHttpResponse响应,Object result,ResponseSerializerDelegate defaultAction,IRequestContext serializerCtx,Byte [] bodyPrefix,Byte [] bodySuffix) ServiceStack \ WebHost.Endpoints \ Extensions \ IHttpResponseExtensions.cs:line 190
我应该为我的服务创建一个单独的类,并使用映射器吗? (这样做似乎是多余的。)为什么我不能直接使用我的实体?