Überschreiben Sie eine öffentliche Eigenschaft aus einer abgeleiteten Klasse

In einem alten Projekt verwenden wir eine Dritte Partei, die assembly mit einer Klasse, die eine Eigenschaft mit einigen hardcoded Informationen:

public string ConnectionString
{
    get
    {
        string[] fullDbName = new string[5];
        fullDbName[0] = "Data Source=";
        fullDbName[1] = this.dbServer;
        fullDbName[2] = ";Initial Catalog=";
        fullDbName[3] = this.FullDbName;
        fullDbName[4] = ";Integrated Security=SSPI;Pooling=false";
        return string.Concat(fullDbName);
    }
}

Ich muss in der Lage sein zu konstruieren, die den connection-string selbst. So habe ich versucht, eine abgeleitete Klasse, die blendet die original-Eigenschaft, aber es scheint nicht zu funktionieren:

public class SqlServerRestorerExstension : SQLServerRestorer
{
    public SqlServerRestorerExstension(string dbServer, string dbName, string dbFilePath, string dbDataFileName, string dbLogFileName, bool detachOnFixtureTearDown, string connectionstring) : base(dbServer, dbName, dbFilePath, dbDataFileName, dbLogFileName, detachOnFixtureTearDown)
    {
        ConnectionString = connectionstring;
    }

    public string ConnectionString { get; private set; }
}

Ist es möglich, tun erreichen dies in keiner Weise, wenn ich nicht haben Zugang zu den third-party-code?

Tut SQLServerRestorer implementiert keine Schnittstelle, die den ConnectionString in es deklariert?
Nein, die ConnectionString-Eigenschaft deklariert wird, als öffentliche Eigenschaft der Klasse SQLServerRestorer.

InformationsquelleAutor peterbf | 2012-02-07

Schreibe einen Kommentar