No tengo tiempo de probarlo ahora, pero mirá las cosas que se pueden
hacer con un poco de cancha

http://www.clariusconsulting.net/blogs/kzu/archive/2009/03/27/129897.aspx



2009/5/7 Leonardo Micheloni <[email protected]>:
> con linq?
>
> 2009/5/7 Leandro Tuttini <[email protected]>:
>> Hola,
>>
>> Les planteo la siguiente situacion.
>>
>> Tengo las siguientes clases:
>>
>> public abstract class FormatInfo
>> {
>> }
>>
>> public class FieldFormatInfo : FormatInfo
>> {
>> }
>>
>> public class ButtonFormatInfo : FormatInfo
>> {
>> }
>>
>> public class OriginFormatInfo : FormatInfo
>> {
>> }
>>
>> public class BlankFormatInfo : FormatInfo
>> {
>> }
>>
>>
>> Y la siguiente implementacion:
>>
>>
>> foreach (FormatInfo format in pivotTableInfo.Format)
>> {
>>     //ApplyFormat<typeof(format)>(sheet, pivotTable, format);
>>
>>     if (format is Mapping.PivotTableInfo.ButtonFormatInfo)
>>         ApplyFormat<ButtonFormatInfo>(sheet, pivotTable,
>> (ButtonFormatInfo)format);
>>     else if (format is Mapping.PivotTableInfo.FieldFormatInfo)
>>         ApplyFormat<FieldFormatInfo>(sheet, pivotTable,
>> (FieldFormatInfo)format);
>>     else if (format is Mapping.PivotTableInfo.OriginFormatInfo)
>>         ApplyFormat<OriginFormatInfo>(sheet, pivotTable,
>> (OriginFormatInfo)format);
>>     else if (format is Mapping.PivotTableInfo.BlankFormatInfo)
>>         ApplyFormat<BlankFormatInfo>(sheet, pivotTable,
>> (BlankFormatInfo)format);
>>
>> }
>>
>>
>> pivotTableInfo.Format, es una propiedad del tipo:
>>
>> public List<FormatInfo> Format { get; set; }
>>
>>
>> Y ApplyFormat() es un metodo:
>>
>> private void ApplyFormat<T>(Office.Worksheet sheet, Office.PivotTable
>> pivotTable, T format) where T : FormatInfo
>> {
>> }
>>
>>
>>
>> Como veran funciona sin problema, pero la verdad no queda nada agradable a
>> la vista, en realidad yo reduje un poco el ejemplo, hay unos 6 format mas
>> que hacen el if
>> bastante feo.
>>
>> por eso la cuestion es porque no puedo hacer algo asi:
>>
>> foreach (FormatInfo format in pivotTableInfo.Format)
>> {
>>     ApplyFormat<typeof(format)>(sheet, pivotTable, format);
>> }
>>
>> O sea la aplicacion del template seria dinamica.
>>
>> Se puede lograr algo parecido a esto ?, o la unica forma es con los if
>> descubriendo el tipo.
>>
>> Saludos
>> ________________________________
>> Yahoo! Cocina
>> Recetas prácticas y comida saludable
>> Visitá http://ar.mujer.yahoo.com/cocina/
>
>

Responder a