Remplacer une propriété publique à partir d'une classe dérivée

Dans un vieux projet, nous sommes à l'aide d'un tiers de l'assemblée avec une classe qui possède une propriété avec certains codé en dur renseignements:

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);
    }
}

J'ai besoin d'être en mesure de construire la chaîne de connexion de mon auto. J'ai donc essayé de faire une classe dérivée qui cache l'origine de la propriété, mais il ne semble pas fonctionner:

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; }
}

Est-il possible de faire réaliser quelque manière que ce soit quand je n'ai pas accès à la troisième partie du code?

Ne SQLServerRestorer mettre en œuvre une interface qui a la propriété ConnectionString déclara-t-il?
Non, la propriété ConnectionString est déclarée comme une propriété publique sur la classe SQLServerRestorer.

OriginalL'auteur peterbf | 2012-02-07