GOOGLE ADS

martes, 3 de mayo de 2022

Anular el constructor predeterminado de una clase parcial con otra clase parcial

No creo que esto sea posible, pero si lo es, entonces lo necesito:)

Tengo un archivo proxy generado automáticamente desde la herramienta de línea de comandos wsdl.exe de Visual Studio 2008.

La salida del proxy son clases parciales. Quiero anular el constructor predeterminado que se genera. Preferiría no modificar el código ya que se genera automáticamente.

Intenté crear otra clase parcial y redefinir el constructor predeterminado, pero eso no funciona. Luego intenté usar la anulación y las nuevas palabras clave, pero eso no funciona.

Sé que podría heredar de la clase parcial, pero eso significaría que tendría que cambiar todo nuestro código fuente para apuntar a la nueva clase principal. Preferiría no tener que hacer esto.

¿Alguna idea, solución o truco?

//Auto-generated class
namespace MyNamespace {
public partial class MyWebService: System.Web.Services.Protocols.SoapHttpClientProtocol {
public MyWebService() {
string myString = "auto-generated constructor";
//other code...
}
}
}
//Manually created class in order to override the default constructor
namespace MyNamespace {
public partial class MyWebService: System.Web.Services.Protocols.SoapHttpClientProtocol {
public override MyWebService() { //this doesn't work
string myString = "overridden constructor";
//other code...
}
}
}


Solución del problema

A veces no tiene acceso o no está permitido cambiar el constructor predeterminado, por esta razón no puede tener el constructor predeterminado para llamar a ningún método.

En este caso, puede crear otro constructor con un parámetro ficticio y hacer que este nuevo constructor llame al constructor predeterminado usando ": this ()"

public SomeClass(int x): this()
{
//Your extra initialization here
}

Y cuando crea una nueva instancia de esta clase, simplemente pasa un parámetro ficticio como este:

SomeClass objSomeClass = new SomeClass(0);

No hay comentarios.:

Publicar un comentario

Flutter: error de rango al acceder a la respuesta JSON

Estoy accediendo a una respuesta JSON con la siguiente estructura. { "fullName": "FirstName LastName", "listings...