事实:
我项目中的类型:
namespace project.Data
{
using System;
public class TestPerson
{
public string Firstname { get; set; }
public string Lastname { get; set; }
public DateTime Birthday { get; set; }
}
}
WCF服务的结果类型:
namespace externalServices.Data
{
using System;
public class TestPerson
{
public string Firstname { get; set; }
public string Lastname { get; set; }
public DateTime Birthday { get; set; }
}
}
问题:
此刻我的解决方案看起来像这样:
// service call
var serviceClient = new ServiceClient();
externalServices.Data.TestPerson externalTestPerson = serviceClient.GetTestPerson();
project.Data.TestPerson myTestPerson = new TestPerson
{
Birthday = externalTestPerson.Birthday,
Firstname = externalTestPerson.Firstname,
Lastname = externalTestPerson.Lastname
};
我希望有一个更优雅的解决方案。
答案 0 :(得分:2)
不,即使所有字段和类名在名称和类型上完全相同,也无法进行强制转换。
此外,您可以使用AutoMapper之类的工具轻松复制。
Mapper.CreateMap<externalServices.Data.TestPerson, project.Data.TestPerson>();
Mapper.Map<externalServices.Data.TestPerson>(testPerson); // Copy all fields that have the same name and the same type