यह वास्तव में मुझे परेशान करता है। मैंने केवल पढ़ने वाले, बदलते नामों को हटाने की कोशिश की है .. मैं यहाँ क्या गलत कर रहा हूं?मेरी कक्षा सीएलएस-अनुपालन क्यों नहीं है?
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();
}
संपादित करें:
चेतावनी:
Warning 1 'Ar.ViewModel.Workspaces.MaterialCatalogBase': base type 'Or.Files.CatalogBase' is not CLS-compliant C:_Center_Work_Programming_Cs\Ar\Ar\ViewModel\Workspaces\MaterialCatalogBase.cs 9 18 Ar
EDIT2:
यहां तक कि अगर मैं कक्षा बदलने के नीचे के रूप में मैं अभी भी त्रुटि मिलती है:
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();
}
इसके अलावा, मैं भूल गया हूँ उल्लेख करें कि मुझे किसी कारण से दो (बिल्कुल वही त्रुटियां) मिलती हैं ..?
क्या सटीक चेतावनी संदेश आप कर रहे है मिल रहा है? –
हम कंपाइलर नहीं हैं, इसलिए कृपया यह दिखाएं कि आपको गैर-सीएलएस-अनुपालन चेतावनी कहां मिलती है। – CodeCaster
जब मैं इसे संकलित करता हूं तो मुझे वास्तव में चेतावनी नहीं मिलती है, सब ठीक दिखता है। –