是否可以在 C# 中以相同类型自动转换服务结果?

Is it possible to cast service result automatically in the same type in C#?

事实:

我项目中的类型:

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
};

我希望有一个更优雅的解决方案。

不,即使所有字段和 class 名称在名称和类型上完全相同,也无法转换。

此外,您可以使用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