使用 C#、ASP.NET、MVC、WCF 时,假设您有一个非公共业务逻辑服务层,并且出于安全和其他此类原因,您有一个公开公开相同操作的网关或外观层。
因此,您有两个具有基本相同数据传输(请求/响应)对象的层,除了公共/公开服务层需要处理代表调用用户的 GUID,而私有/内部服务层需要处理更丰富的身份验证票。此身份验证票证不得暴露给公共层。
PublicDto {
Guid userGuid;
string property1;
...
string propertyN;
}
PrivateDto {
AuthenticationTicket authTicket;
string property1;
...
string propertyN;
}
是否有一种有效的方法来派生基类或在此处利用接口,以便将私有 AuthenticationTicket 与公共层屏蔽,但最大限度地减少私有和公共 DTO 之间区分属性的剪切和粘贴?