من میخواستم یک متد در کلاس والد را override کنم چون عملیاتی که در کلاس پایه اتفاق میافته مد نظر نمی باشد و احتیاج به عملیات اضافه تری هست به همین خاطر تصمیم گرفتم که متد کلاس پایه رو در کلاس والد override کنم
کلاس پایه این طوری تعریف شده است
public class BaseServiceGeneric<TEntity> : IBaseServiceGeneric<TEntity>
where TEntity : class
{
public IUnitOfWork _uow;
public IDbSet<TEntity> _BaseModel;
public BaseServiceGeneric(IUnitOfWork uow)
{
_uow = uow;
_BaseModel = _uow.Set<TEntity>();
}
public virtual void Base_AddOrUpdate(TEntity entity)
{
_BaseModel.AddOrUpdate(entity);
}
}
متدی که میخاد override بشه Base_AddOrUpdate هست.
اینم کلاس والد هست
public class BaseServiceSetting : BaseServiceGeneric<BaseSetting>, IBaseServiceSetting
{
//IUnitOfWork _uow;
readonly IDbSet<BaseSetting> _model;
#region کانستراکتور
public BaseServiceSetting(IUnitOfWork uow)
: base(uow)
{
_uow = uow;
_model = _uow.Set<BaseSetting>();
}
#endregion
public void Base_AddOrUpdate(BaseSetting model, object modelConvert)
{
model.CreateXML(modelConvert);
base.Base_AddOrUpdate(model);
}
}
اما در قسمت کنترلر هر دوتاشو میاره
1.png
عکس های ضمیمه
1.png
(4.6 کیلوبایت)