我有一个 ApprovalTicket 类,它有一个名为 ApprovalRules 的 IApproval 类型的属性:
IApproval ApprovalRules;
该字段将包含实现该接口的几种不同类型的类。现在升级一个级别,我将有一个 ApprovalTickets 列表。我想要做的是使用 linq 返回具有 MocReviewerApproval 类型的 ApprovalRules 的 ApprovalTicket 列表。
我正在尝试类似的东西:
var reviews = request.MocApprovalTasks
.Where(mocApproval => mocApproval.ApprovalRules is MocReviewerApproval)
.ToList();
但是当我检查返回的列表时,它仍然包括具有 MocManagerApproval 的 ApprovalRules 类型的票证和其他票证。我错过了什么?
更新:
让我更具体一点。这是继承方案
MocApproval : TaskTicket
>>IApproval ApprovalRules;
MocReviewerApproval : IApproval
MocManagerApproval : IApproval
MocControllerApproval : IApproval
internal interface IApproval
{
bool Approve(Guid approverGuid, MocApproval approval);
bool Deny(Guid approverGuid, MocApproval approval, TaskComment denialComment);
bool Close(Guid approverGuid, MocApproval approval, TaskComment closeComment);
bool Notify();
void Set(MocApproval approval);
User GetAssignee();
TaskComment GetNotificationComment();
}