servicestack ServiceStack Translate发送回空对象
我的回答如下:
servicestack ServiceStack Translate发送回空对象,
servicestack,
servicestack,我的回答如下: public class PatientFindResponse : IHasResponseStatus { public class Patient { public int PeopleId { get; set; } public string FirstName { get; set; } public string LastName { get
public class PatientFindResponse : IHasResponseStatus
{
public class Patient
{
public int PeopleId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public Patient Result { get; set; }
public ResponseStatus ResponseStatus { get; set; }
}
这是我的服务:
public class PatientFindService : IService
{
public ISessionFactory NHSessionFactory { get; set; }
public PatientFindService(ISessionFactory sessionFactory)
{
NHSessionFactory = sessionFactory;
}
public object Execute(PatientFind request)
{
using (var session = NHSessionFactory.OpenSession())
{
var result = session.Load<MyCompany.MyProduct.Entities.People>(request.PeopleId);
return new PatientFindResponse
{
Result = result.TranslateTo<PatientFindResponse.Patient>()
};
}
}
}
这里要显示的最重要的信息是您试图翻译的两种类型的定义。确保两者都有同名的公共属性 另外,诊断问题的最佳方法是隔离问题,例如,您不需要ServiceStack或NHibernate来测试
TranslateTo
功能,如果您隔离测试结果,则更容易看到发生了什么,例如:
var model = new MyCompany.MyProduct.Entities.People { ... };
var dto = model.TranslateTo<PatientFindResponse.Patient>();
dto.PrintDump(); //Print the output of the translated object
谢谢你的回复,我正在使用Service ESTACK.So界面版本3.7.8.当我去IService的时候,我没有看到任何方法只执行,我有错误的版本吗?3.7X是非常旧的升级,最新的版本是3.93OK我更新到3.933,我仍然没有在对象浏览器中看到接口iSeries设备的任何方法定义。啊,好的,一定是在某个隐蔽的地方处理的。我已经验证了属性是公共的,并且名称也相同。你能更新你的答案以包含这两种类型的类定义吗?
var model = new MyCompany.MyProduct.Entities.People { ... };
var dto = model.TranslateTo<PatientFindResponse.Patient>();
dto.PrintDump(); //Print the output of the translated object
public class PatientFindService : IService
{
public object Any(PatientFind request) {
...
}
}