0

我有一个 base MappedViewModel,也就是说,它是为与域和其他模型的“自动”映射而构建的:

public abstract class MappedViewModel<TEntity> : ViewModel
{
    public virtual void MapFromEntity(TEntity entity, bool forCreate = false)
    {
        Mapper.Map(entity, this, typeof(TEntity), GetType());
        if (ModelPurpose == ViewModelPurpose.Create)
        {
            NullifyReferenceProperties();
        }
    }

    public virtual TEntity MapToEntity()
    {
        return Mapper.Map<TEntity>(this);
    }

    protected virtual void NullifyReferenceProperties()
    {            
    }
}

我不知何故觉得它NullifyReferenceProperties应该在基类中是抽象的,以强制需要它的类来实现它,但许多类不需要它,而且当模型不是为创建新实体而构建时,许多类需要它。是否可以像现在一样virtual,或者有什么方法可以确定如何强制使用它?

也许是MappedViewModel一个派生的基地MappedViewModelForCreate

4

1 回答 1

1

如果你想强制所有派生的类MappedViewModel重写NullifyReferenceProperties方法 make it abstract。如果没有,我认为最好离开它virtual

于 2013-01-21T07:12:41.040 回答