C # - передача типа объекта в параметре метода - PullRequest
0 голосов
/ 01 апреля 2011

Я пытаюсь передать тип объекта методу. Я делаю это для своего CRUDRepository, который наследуется другими репозиториями, но я не могу понять, как узнать, с каким типом я работаю.

Например:

    public PageOf<Entity> GetPageOfEntity(int pageNumber, int pageSize)
    {
    // Here i need to work with the entity type to make calls to database  
    }

Entity - это объект, который наследуется другими объектами (пользователем, продуктами и т. Д.), И этот метод возвращает постраничный результат. Я делаю это, чтобы избежать создания GetPageOf метода для каждой сущности, которую я имею.

Как правильно передать методу тип объекта, с которым я хочу иметь дело в постраничных результатах?

Edit:

Вот пример сущности

     public abstract class Entity 
     {
     public virtual long Id { get; set; }
     public virtual DateTime Created { get; set; }
     }

И пользовательский объект:

     public class User : Entity
     {
     public string FirstName { get; set; }
     }

Поскольку я пытаюсь написать отдельный класс для обработки некоторых необработанных операций, мне нужно знать в методе, какой объект я использую (но сейчас я пытаюсь создать один метод для каждого типа объекта)

Спасибо

Ответы [ 2 ]

5 голосов
/ 01 апреля 2011

Сделать метод универсальным:

public PageOf<TEntity> GetPageOfEntity<TEntity>(int pageNumber, int pageSize)
    where TEntity : Entity
{
    Type entityType = typeof(TEntity);
    ...
}
0 голосов
/ 01 апреля 2011

Я не уверен, я правильно понимаю ваш вопрос, но вы не можете просто использовать универсальный параметр?

public PageOf<Entity> GetPageOfEntity<TEntity>(int pageNumber, int pageSize) 
    where TEntity : Entity
{
// Here i need to work with the entity type to make calls to database  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...