It really puzzles me. I tried to remove readonly by changing names .. What am I doing wrong here?
public abstract class CatalogBase<T> where T : class { protected readonly String DataPath; protected readonly XmlSerializer Serializer; private readonly XmlSerializerNamespaces _namespaces; protected CatalogBase(String dataPath) { DataPath = dataPath; Serializer = new XmlSerializer(typeof (T)); _namespaces = new XmlSerializerNamespaces(); _namespaces.Add(String.Empty, String.Empty); } public virtual void Write(T obj) { var streamWriter = new StreamWriter(DataPath); Serializer.Serialize(streamWriter, obj, _namespaces); streamWriter.Close(); } public abstract IDictionary<String, T> Read(); }
Edit:
A warning:
Warning 1 'Ar.ViewModel.Workspaces.MaterialCatalogBase': base type "Or.Files.CatalogBase" not CLS-compatible C: _Center_Work_Programming_Cs \ Ar \ Ar \ ViewModel \ Workspaces \ MaterialCatalogBase.cs 9 18 Ar
Edit2:
Even if I change the class as shown below, I still get the error:
public abstract class CatalogBase<T> where T : class { protected readonly String DataPath; protected readonly XmlSerializer Serializer; private readonly XmlSerializerNamespaces namespaces; protected CatalogBase(String dataPath) { DataPath = dataPath; Serializer = new XmlSerializer(typeof (T)); namespaces = new XmlSerializerNamespaces(); namespaces.Add(String.Empty, String.Empty); } public virtual void Write(T obj) { var streamWriter = new StreamWriter(DataPath); Serializer.Serialize(streamWriter, obj, namespaces); streamWriter.Close(); } public abstract IDictionary<String, T> Read(); }
Also, I forgot to mention that for some reason I get two (exactly the same errors).
Pavel matuska
source share