public static class PersonPropertyMapper
{
public static PeopleSearchBusinessLogic.DomainModels.Person ToDomainModel(this Entities.Person entity)
{
return new PeopleSearchBusinessLogic.DomainModels.Person()
{
Id = entity.Id,
Name = entity.Name,
Address = entity.Address,
Age = entity.Age,
Interests = entity.Interests,
Picture = entity.Picture
};
}
}
正如你在这里看到的,我有一个带有扩展方法的类,它可以来回转换对象。在这种情况下,ToDomainModel方法是Entities.Person对象的扩展。
我的理解是,包含扩展方法的类不能从其他类派生或实现接口。但是,当我添加更多" PropertyMappers"我想要求所有这些类遵循相同的接口,以便方法名称在整个应用程序中是相同的。我觉得应该有一个简单的解决方案,但这不是我第一次遇到这个问题。
作为一个例子,让我们说我有一个Car对象,我需要创建一个CarPropertyMapper。现在,没有什么能阻止我将扩展方法命名为" ToCarDomainModel()"而不是标准" ToDomainModel"。
我希望有一个解决方案来解决这个难题,或者至少理解为什么我会以错误的方式解决这个问题。
或者,是否存在我忽略的映射对象(例如域模型和实体)的另一种解决方案?
答案 0 :(得分:1)
扩展方法是静态类中的静态方法,当然它们不能实现接口或扩展其他类。但这并不是他们的正常使用。
对此的一些解决方案: