Die XML-Serialisierung Fehler - Es wurde ein Fehler beim reflektieren geben

Ich versuche zu serialisieren, die einige benutzerdefinierte Einstellungen aus der Konfigurationsdatei.
Hier sind meine Einstellungen:

<FavouriteTools>
        <favouriteTool PluginPlaceHolder="FavoriteTool1" PlugInName="Brightness"
          PlugInType="2D" PlugInAssemblyName="Micro.DigiMic.Plugins.AreaBasedOnBrightness.AreaBasedOnBrightnessPlugin"
          GUID="0000c03a-b891-4ebd-87d7-5fbc19073a1a" />
        <favouriteTool PluginPlaceHolder="FavoriteTool2" PlugInName="CircleArea"
          PlugInType="2D" PlugInAssemblyName="Micro.DigiMic.Plugins.CircleAreaPlugin.CircleAreaPlugin"
          GUID="0000c06a-b891-4ebd-87d7-5fbc19073a1a" />
        <favouriteTool PluginPlaceHolder="FavoriteTool3" PlugInName="Contour Area"
          PlugInType="2D" PlugInAssemblyName="Micro.DigiMic.Plugins.ContourAreaPlugin.ContourAreaPlugin"
          GUID="0000c11a-b891-4ebd-87d7-5fbc19073a1a" />         

Aber ich bekomme Fehler bei der Serialisierung von Ihnen. Hier sind meine Klassen.

//FavouriteTools - Root Node
[Serializable]
[XmlType("FavoriteTools")]
[ConfigurationCollection(typeof(FavouriteTool), AddItemName = "favouriteTool", CollectionType = ConfigurationElementCollectionType.BasicMap)]
public class FavouriteToolsCollection
: ConfigurationElementCollection    
{
//Few plublic methods here
}

//favouriteTool -  Child node
[Serializable]
[XmlType("favouriteTool")]
public class FavouriteTool : ConfigurationElement
{
    ///<summary>
    ///Gets or sets value of Plugin PlaceHolder.
    ///</summary>
    ///<value>Text Color.</value> 
    [ConfigurationProperty("PluginPlaceHolder", IsRequired = false)]
    public string PlugPlaceHolder
    {
        get { return (string)base["PluginPlaceHolder"]; }
        set { base["PluginPlaceHolder"] = value; }
    }

//Few more properties like above
}

I am trying to serialize below class, but gets exception on below like

XmlSerializer xmlinf = new XmlSerializer(data.GetType());


`data` is `ExportUser`

[Serializable]
public class ExportUser
{

public bool IsMetric { get; set; }

[XmlArray("FavoriteTools")]
    [XmlArrayItem("favouriteTool")]
    public FavouriteToolsCollection FavoriteTools { get; set; }
 }  

Bekomme ich diese Fehler - There was an error reflecting type 'ExportUser' und in der inneren Ausnahme der Fehler sagt - There was an error reflecting type 'FavoriteTools'.

Ist es etwas, was fehlt?

Update:

Nachdem er die innere Ausnahme, die den Fehler

{"You must implement a default accessor on System.Configuration.ConfigurationLockCollection because it inherits from ICollection."}

There was an error reflecting type 'Zeiss.Micro.DigiMic.Application.FavouriteTool'.

Aber ich habe eine Standard-accessor in FavouriteToolsCollection Klasse:

public FavouriteTool this[int index]
    {
        get
        {
            return (FavouriteTool)BaseGet(index);
        }

        set
        {
            if (this.BaseGet(index) != null)
            {
                this.BaseRemoveAt(index);
            }

            this.BaseAdd(index, value);
        }
    }

Was fehlt?

  • Was war die innere Ausnahme von der Ausnahme? (etc) - es gibt tatsächlich wirklich ausführliche Nachrichten, wenn Sie halten bohren. Btw - hat es eigentlich sagen ...reflecting type 'FavoriteTools'? weil im code: das ist nicht eine Art
  • For non-array types, you may use the following attributes: XmlAttribute, XmlText, XmlElement, or XmlAnyElement. - Hier ist die genaue Nachricht mit innerException There was an error reflecting type 'FavoriteTools'
InformationsquelleAutor Saroj | 2013-11-07
Schreibe einen Kommentar