Extiendo la clase existente de .NET framework derivandolo. ¿Cómo convierto un objeto de tipo base a tipo derivado?Convertir/Fundir tipo de base en el tipo Derivado
public class Results { //Framework methods }
public class MyResults : Results { //Nothing here }
//I call the framework method
public static MyResults GetResults()
{
Results results = new Results();
//Results results = new MyResults(); //tried this as well.
results = CallFrameworkMethod();
return (MyResults)results; //Throws runtime exception
}
entiendo que esto ocurre como estoy tratando de echar un tipo base de un tipo derivado y si el tipo de derivado tiene propiedades adicionales, entonces la memoria no se ha asignado. Cuando agregue las propiedades adicionales, no me importa si se inicializan como nulas.
¿Cómo hago esto sin hacer una copia manual?
En lugar de extender el tipo, ¿puede simplemente crear un método de extensión? –
Esta es una buena idea. Con los métodos de extensión, puedo adjuntar nuevos métodos. Realmente no puedo agregar propiedades/variables adicionales al tipo. – Nick
Parece mucho trabajo evitar escribir un simple constructor de copia. Sé que en muchos casos eso no es posible, pero parece una posible solución en este caso. – overslacked