2015-10-12 2 views
1

У меня есть абстрактный класс «Автомобиль», два детских класса «Автомобиль» и «Мотоцикл». Я пытаюсь построить контроллер MVC, который может сохранять/редактировать/обновлять/удалять как «Автомобиль», так и «Мотоцикл». Мой контроллер должен наследовать от абстрактного BaseController, который принимает параметр TEntity в качестве параметра. Моя проблема в том, что я не знаю, как я могу достичь этого, когда я не знаю, какой тип объекта я хочу сохранить. Мой первый план состоял в том, чтобы передать «Vehicle» на BaseController, но это не работает, потому что «Vehicle» не имеет публичного конструктора. // младший разработчикКонтроллер Crud для абстрактного объекта .Net Mvc

+0

показать ваш пример кода. Но я думаю, что если вы пытаетесь создать CRUD, вы должны посмотреть на ['ApiController'] (https://msdn.microsoft.com/ru-ru/library/system.web.http.apicontroller (v = vs.118). aspx) –

+0

Лучше всего использовать интерфейсы и передавать их вместо абстрактных типов. Интерфейс будет заключаться в том, что ваши объекты будут соответствовать, поэтому в вашем случае это будут вещи, такие как 'Save()' + 'Delete()' и т. Д. Включите то, что вы сделали до сих пор, и мы можем разработать план оттуда , – timothyclifford

ответ

1

Я думаю, что понимаю, что вы имеете в виду. Вы можете попробовать использовать общие интерфейсы?

public interface IVehicle<T> where T : Entity 
{ 
    void Save(T entity); 
    T Get(int id); 
} 

т.д.

Вы можете использовать интерфейс.

public IVehicle<Car> Car { get; set; } 
//... Stuff 

var result = Car.Get(1); 
Car.Save(entity); 
Смежные вопросы