Hallo,

ich habe ein seltsames Problem:

Ich habe eine Klasse Configuration, die
aus einer .config Datei Einstellungen für meine
ASP.NET Application liest (und diese normalerweise
auch cached, was aber für diesen Test/Fehler
deaktiviert wurde).

Nun greife ich im DataLayer in der Klasse
DALBase.cs darauf (DataAccess.OleDbConnectionString) zu:

public class DALBase {
        protected static string ConnectionString        = string.Empty;
        protected static AdoHelper DALHelper;

        static DALBase() {                              
                string assembly = string.Empty, type = string.Empty;
                //              string type             = string.Empty;
                switch( DataAccess.ProviderType ) {
                        case DataProviderType.SqlServer:
                                assembly                        =
DataAccess.SqlServerHelperAssembly;
                                type                            =
DataAccess.SqlServerHelperType;
                                ConnectionString        = 
        
DataAccess.SqlServerConnectionString;
                                break;
                        case DataProviderType.OleDb:
                                assembly                        =
DataAccess.OleDbHelperAssembly;
                                type                            =
DataAccess.OleDbHelperType;
                                ConnectionString        = 
                                        DataAccess.OleDbConnectionString;

                                break;
                        case DataProviderType.Odbc:
                                assembly                        =
DataAccess.OdbcHelperAssembly;
                                type                            =
DataAccess.OdbcHelperType;
                                ConnectionString        =
DataAccess.OdbcConnectionString;
                                break;
                }
                DALHelper = AdoHelper.CreateHelper( assembly, type);
        }
}

Den ConnectionString, der hier definiert wurde, verwende ich nun
in einer Methode einer Klasse, die von DALBase abgeleitet wurde:

public static PageContentDataSet GetMenuEntries() {
        PageContentDataSet ds = new PageContentDataSet();

        DALHelper.FillDataset(
                ConnectionString,
                CommandType.StoredProcedure, 
                "PageContentGetMenu",
                ds,
                new string[] {"PageContent"});
        return ds;
}

Der Effekt, der nun auftritt, ist folgender:
Ändere ich in dem Eingangs genannten .config File
nun den ConnectionString, bekommt der ConnectionString in der 
GetMenuEntries()-Methode die Änderung nicht mit und arbeitet
mit dem alten Wert.

Verwende ich nun in GetMenuEntries() statt ConnectionString
direkt DataAccess.OleDbConnectionString, klappt es wunderbar,
d.h. bei Änderungen wird der richtige, geänderte ConnectionString
verwendet.

Aber warum ist das so? Wieso klappt es über die Ableitung bzw.
den ConnectionString der Ableitung nicht?

Gruss

Alex


_______________________________________________
CSharp.net Mailingliste, Postings senden an:
[EMAIL PROTECTED]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/csharp.net

Antwort per Email an