Nicht generische Subklasse von generischer Basisklasse (CSharp)
Hi leute, komm mit einer Compilermeldung nicht klar.
Ich habe 3 Klassen.
Config<T>
AppConfig : Config<T>
und meine Serializer klasse ConfigLoader
Ich bekomme folgende Meldung
Fehler 1 "DataAccess.XML.AppConfig" enthält keinen Konstruktor, der 1-Argumente akzeptiert.
und werd daraus nicht schlau, da ich ganz sicher bin das ein 1-Argument Konstruktor exisitiert
die drei Klassen sehen wie folgt aus
Config<T>:
AppConfig
und der Serialisierer
Nenvermind, ich bin doof wie omo, hab vergessen die Klassen public zu deklarieren.
Ich lasse den Beitrag trotzdem stehen als Zeichen der Schande
Ich habe 3 Klassen.
Config<T>
AppConfig : Config<T>
und meine Serializer klasse ConfigLoader
Ich bekomme folgende Meldung
Fehler 1 "DataAccess.XML.AppConfig" enthält keinen Konstruktor, der 1-Argumente akzeptiert.
und werd daraus nicht schlau, da ich ganz sicher bin das ein 1-Argument Konstruktor exisitiert
die drei Klassen sehen wie folgt aus
Config<T>:
public class Config<T>
{
public string _MyFileName;
public Config(string filename) { this._MyFileName = filename; }
}
}
AppConfig
class AppConfig : Config<AppConfig>
{
// - member - //
private string _LogfilePath;
private string _LogfileArchivePath;
// - eigenschaften - //
[XmlElement("LogfilePath")]
public string LogfilePath
{
get { return _LogfilePath; }
set { _LogfilePath = value; }
}
[XmlElement("LogfileArchive")]
public string LogfileArchivePath
{
get { return _LogfileArchivePath; }
set { _LogfileArchivePath = value; }
}
// - konstruktoren - //
public AppConfig(string filename) : base(filename) { }
und der Serialisierer
/// <summary>
/// Base XML-Configurationfile Serializer and Deserializer
/// </summary>
class ConfigurationLoader
{
public string ConfigPath;
// - methods - //
public T Load<T>(string FileName)
{
XmlSerializer deser = new XmlSerializer(typeof(Config<T>));
using (TextReader tr = new StreamReader(ConfigPath + FileName))
{
return (T)FormatterServices.GetUninitializedObject(typeof(T));
}
}
public void Save<T>(Config<T> conf)
{
XmlSerializer serializer = new XmlSerializer(typeof(Config<T>));
using (TextWriter textWriter = new StreamWriter(ConfigPath + conf._MyFileName))
{
serializer.Serialize(textWriter, conf);
}
}
// - helpers - //
// - konstruktoren - //
public ConfigurationLoader(string configpath) { this.ConfigPath = configpath; }
Nenvermind, ich bin doof wie omo, hab vergessen die Klassen public zu deklarieren.
Ich lasse den Beitrag trotzdem stehen als Zeichen der Schande
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 182679
Url: https://administrator.de/contentid/182679
Ausgedruckt am: 23.11.2024 um 01:11 Uhr