boingboing
Goto Top

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>:
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

Content-Key: 182679

Url: https://administrator.de/contentid/182679

Printed on: April 19, 2024 at 00:04 o'clock