COMO PASSAR UM PARAMETRO DA CLASSE<T> ?
Duvida, considerando que tenho
Eu gostaria de nao passar o tipo para outros momento do codigo, exemplo
Ou seja, receber qualquer que fosse o objeto usado para instanciar PaginatedViewModel, eu so consegui se deixo explicito o tipo , exemplo PaginatedViewModel<Banana>
Porem meu Pager usara varios tipos (PaginatedViewModel<Banana>, PaginatedViewModel<Laranja) e nao quero ficar declarando um-a-um
public class PaginatedViewModel<T>
Eu gostaria de nao passar o tipo para outros momento do codigo, exemplo
public static IHtmlContent Pager(this IHtmlHelper htmlHelper, string controller, string action, PaginatedViewModel<?????> viewmodel)
Ou seja, receber qualquer que fosse o objeto usado para instanciar PaginatedViewModel, eu so consegui se deixo explicito o tipo , exemplo PaginatedViewModel<Banana>
Porem meu Pager usara varios tipos (PaginatedViewModel<Banana>, PaginatedViewModel<Laranja) e nao quero ficar declarando um-a-um
Os objetos que serão passÃÂveis de serem paginados, podem herdar alguma interface e daàao invés de herdar o objeto em si, herde a interface:
Assim, sempre que for passar o parâmetro, pode passar o objeto que quiser, desde que ele herde de IPaginavel
public interface IPaginavel
....
public class PaginatedViewModel<IPaginavel>
...
public class Banana : IPaginavel
...
Assim, sempre que for passar o parâmetro, pode passar o objeto que quiser, desde que ele herde de IPaginavel
DifÃÂcil dizer com certeza o que pode ser feito, mas talvez voce possa fazer o o seu método Pager ser genérico pra aceitar qualquer tipo de PaginatedViewModel<T>
E no geral não é nem preciso dizer o tipo na hora de chamar pois ele deve inferir o tipo pelo parâmetro passado, mas como me parece ser algo para usar com nos *.cshtml eu não me recordo se ele também é capaz de inferir os tipos genéricos, eu chutaria que sim mas não tenho certeza.
public static IHtmlContent Pager<T>(this IHtmlHelper htmlHelper, string controller, string action, PaginatedViewModel<T> viewmodel)
E no geral não é nem preciso dizer o tipo na hora de chamar pois ele deve inferir o tipo pelo parâmetro passado, mas como me parece ser algo para usar com nos *.cshtml eu não me recordo se ele também é capaz de inferir os tipos genéricos, eu chutaria que sim mas não tenho certeza.
É Ocelot, nao vai rolar ficar fazendo desse jeito ( com <T>) pois tem que ficar "tipando" para cada caso.
Kerp, de fato usar uma interface vai ser o jeito mais pratico mesmo, nao era o que eu queria, pensei que daria para generalizar no momento da passagem do parametro.. algo como <Object> mas pelo jeito nao vai rolar.
Tinha pensado mesmo em usar Interface mas achei que nao ficaria legal
Kerp, de fato usar uma interface vai ser o jeito mais pratico mesmo, nao era o que eu queria, pensei que daria para generalizar no momento da passagem do parametro.. algo como <Object> mas pelo jeito nao vai rolar.
Tinha pensado mesmo em usar Interface mas achei que nao ficaria legal
Tópico encerrado , respostas não são mais permitidas