我已经用C#编写了SVC服务,效果很好。
该解决方案由3个项目组成:
在服务中,我知道有一个问题:属性是DateTime,但是数据库中的数据为null。这将是可以为空的DateTime。
public class DocumentResult
{
public DocumentResult()
{
}
public FooViewModel { get; set; }
}
public class FooViewModel{
public string CompanyCode { get; set; }
public DateTime RegistrationDate { get; set; }
}
界面 IDocuments
[ServiceContract]
[DataContractFormatAttribute]
public interface IDocuments
{
[OperationContract]
[WebGet(UriTemplate = "/{companyCode}/{documentId}/docdetail", ResponseFormat = WebMessageFormat.Json)]
DocumentResult GetDocument(string companyCode, string documentId);
}
服务 Document.svc.cs
public class Documents : IDocuments
{
public DocumentResult GetDocument(string companyCode, string documentId)
{
// breakpoint here
...
}
}
测试方法
[TestMethod]
public void TestGetDocument()
{
HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(String.Format("{0}/Documents/{1}/{2}/docdetail", ConfigSettings.WSBaseUrl, Uri.EscapeDataString("FOO"), Uri.EscapeDataString("8")));
webrequest.ContentType = "application/json";
using (WebResponse response = webrequest.GetResponse())
{
...
}
}
我打开Visual Studio和解决方案,右键单击项目,在新实例中调试。我在服务调用的第一行(接口的实现)中放置了一个断点
我打开Visual Studio的另一个实例,并使用相同的解决方案,运行测试。 调试效果很好。
如果我使用具有增强的DateTime列的数据,则可以很好地工作,但是当我使用具有空的DateTime列的数据时,断点将被击中两次。
感谢您的帮助。