0

私はベースを持っています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をオーバーライドさせる場合は、それを作成します。そうでない場合は、そのままにしておく方が良いと思います。NullifyReferencePropertiesabstractvirtual

于 2013-01-21T07:12:41.040 に答える