是否有 c# 方法可以通过媒体映射来自不同程序集的类?媒体意味着适配器。到目前为止,我所做的是继承每个域实体。如果域程序集中有 40 个实体,我只是在应用程序程序集中继承该类,它创建了其他 40 个文件或 1 个具有所有继承的文件。然后将其用于其他程序集(基础设施程序集)。它相当重复的任务和臃肿的代码。如何捷径解决此类问题?我更喜欢 C# 内置方式而不是使用外部库。
域组装
SiteEntity.cs
namespace Domain.Entities;
public class SiteEntity
{
public string Name { get; set; }
public string Url { get; set; }
}
public class UserEntity {}
应用组装
MapSiteEntity.cs
每个实体单个文件
using Domain.Entities;
namespace Application.Entities;
public class MapSiteEntity : SiteEntity {}
或者
MapEntities.cs
单个文件包含所有实体
using Domain.Entities;
namespace Application.Entities;
public class MapSiteEntity : SiteEntity {}
public class MapUserEntity : UserEntity {}
基础设施组装
ApplicationDbContext.cs
using Application.Entities;
DbSet<MapSiteEntity> Sites => Set<MapSiteEntity>();
我想要什么,我创建像
MapperEntity.cs
这样的单个文件。它可以将域程序集内的文件夹实体内的所有类型转换为MapEntities.cs
实现此目的的一种方法是创建一个
Interface
它将成为所有实体的父级。
您将使用该接口直接转换类。像这样的东西:
public static T Map<T>(ISite site) where T : ISite, new()
{
return new T { Name = site.Name };
}