Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Shell Root en 16 Octubre 2012, 01:31 am



Título: Multi-Building Object Control
Publicado por: Shell Root en 16 Octubre 2012, 01:31 am
jajaja no tenia que otro nombre ponerle...

Tengo varios controles que se llena de la "misma" forma, (BulletedList, DropDownList, ListBox), que se llenan por medio de un SqlDataReader, se podría generar una función que devuelva el control con los parámetros establecidos en la función. Cabe destacar que se debe de retornar el mismo tipo de control.

La función seríal algo al estilo de...
Código
  1. public <sTypeControl> fnBuildObj( Object sObj, String sQuery, String sText, String sValue )
  2. {
  3.   /* ... */
  4.   return <sTypeControl>;
  5. }

y lo llamaría algo así,
Código
  1. this.BulletedList1 = fnBuildObj( BulletedList, sQuery, sText, sValue );
  2. this.DropDownList1 = fnBuildObj( DropDownList, sQuery, sText, sValue );
  3. this.ListBox1      = fnBuildObj( ListBox, sQuery, sText, sValue );
  4.  


Título: Re: Multi-Building Object Control
Publicado por: Novlucker en 16 Octubre 2012, 02:44 am
No entendí si es una pregunta o una afirmación :xD


Mi consejo sería que el método con el SqlDataReader solo se encargue de retornar una lista de objetos de negocio (objetos de algún tipo en específico).
Por otra parte, podrías usar un tipo genérico en lugar de el object del primera parametro.


Saludos


Título: Re: Multi-Building Object Control
Publicado por: Shell Root en 16 Octubre 2012, 06:54 am
Es una pregunta jajaja :p,

Como hago para que la funcion tenga un tipo de datos, igual, al que se le da en el parametro sObject, con el fin que cuando retorne el valor, sea del mismo tipo de dato...

Lo que quiero es automatizar el uso de esos controles, y solo enviar parametros y que ya la funcion se encargue de todo...

No se como hacerlo, lo que hice fue la lógica, de como sería... Podrías darme un ejemplo?


Título: Re: Multi-Building Object Control
Publicado por: Novlucker en 16 Octubre 2012, 07:24 am
Algo así ...
Código
  1. public T fnBuildObj<T>(T sObj, string sQuery, string sText, string sValue) where T : ListControl
  2. {
  3. return sObj;
  4. }

En este caso he limitado el método a los "ListControl" (DropDownList, ListBox y BulletedList lo son por ejemplo), y retorno el objeto tal cual ingresa, así que tu deberías de agregar el resto del código.
Mirando mejor me he dado cuenta de que tu problema es otro y lo había malentendido, entonces mejor así ...
Código
  1. public T fnBuildObj<T>(string sQuery, string sText, string sValue) where T : ListControl
  2. {
  3.    T a = Activator.CreateInstance<T>();
  4.    return a;
  5. }

Saludos
 
 


Título: Re: Multi-Building Object Control
Publicado por: Novlucker en 19 Octubre 2012, 21:17 pm
Bueno, me quede con la duda de si era lo que buscabas o ya no ...

Saludos