Typ oder namespace-name 'Serializable' existiert nicht im namespace 'System' (fehlt ein Assemblyverweis?

Typ oder namespace-name 'Serializable' existiert nicht im namespace 'System' (fehlt ein Assemblyverweis?Ich bin VS 2012 silverlight-5 Anfänger. Ich habe versucht zu serialisieren und Deserialisieren aus einer xml-Datei. Ich habe folgenden Fehler, während dies zu tun :

The type or namespace name 'Serializable' does not exist in the namespace 'System' (are you missing an assembly reference?) 
The type or namespace name 'SerializableAttribute' could not be found (are you missing a using directive or an assembly reference?)

The type or namespace name 'DatamemberAttribute' could not be found (are you missing a using directive or an assembly reference?)
The type or namespace name 'Datamember' could not be found (are you missing a using directive or an assembly reference?)

Mein code für die Serialisierung ist :

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Runtime.Serialization.Json;
using System.Runtime;
using System.Xml.Serialization;
using System.Runtime.Serialization;
using System.IO;

namespace Model.XML
{   
        public static class Serialization<T> where T : class
        {

            public static T DeserializeFromXmlFile(string fileName)
            {
                if (!File.Exists(fileName))
                {
                    return null;
                }

                DataContractSerializer deserializer = new DataContractSerializer(typeof(T));

                using (Stream stream = File.OpenRead(fileName))
                {
                    return (T)deserializer.ReadObject(stream);
                }
            }
        }

}

Aber ich bin daran interessiert, dass jede Klasse separat (nicht alle 3 Klassen (parameter -, Bauteil-und Attribut), die in einer Klasse).

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Runtime.Serialization.Json;
using System.Runtime;
using System.Xml.Serialization;
using System.Runtime.Serialization;
using System.IO;
using System.Xml.Serialization.XmlTypeAttribute;
using System.Serializable;          //It gives red line under Serializable



namespace Model.XML
{
    [Serializable] //It gives red line
    public class attribute
    {
        [Datamember] //It gives red line
        public string name { get; set; }

        [Datamember] //It gives red line
        public string label { get; set; }

        [Datamember] //It gives red line
        public string unit { get; set; }

        [Datamember] //It gives red line
        public component thisComponent { get; set; }
    }
}

ich versuchte Referenz using System.Serializable; aber es ist nicht verfügbar in der dll-Liste, die ich in meinem VS2012.
Was ist die Ursache des Problems und wie bekommt man es Los ? Vielen Dank im Voraus.

BEARBEITEN NACH Kommentare:

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Runtime.Serialization.Json;
using System.Runtime;
using System.Xml.Serialization;
using System.Runtime.Serialization;
using System.IO;
using System.Collections.Generic;


namespace Model.XML
{
    [DataContract]
    public class attribute
    {
        [DataMember]
        public string type { get; set; }

        [DataMember]
        public string displayed { get; set; }

        [DataMember]
        public string add_remove { get; set; }

        [DataMember]
        public string ccypair { get; set; }

        [DataMember]
        public List<int> item { get; set; }

        public static void Main()
        {
            attribute Obj1 = Serialization<attribute>.DeserializeFromXmlFile("C:\\Users\\SHEK\\Desktop\\VannakNew\\DEV_CENTER\\Model\\XML\\XmlParameter.xml");
         //Obj1.type = "shekhar";

        }

    }
}

Und Serialisierung.cs :

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Runtime.Serialization.Json;
using System.Runtime;
using System.Xml.Serialization;
using System.Runtime.Serialization;
using System.IO;

namespace Model.XML
{   
        public static class Serialization<T> where T : class
        {

            public static T DeserializeFromXmlFile(string fileName)
            {
                if (!File.Exists(fileName))
                {
                    MessageBox.Show("File Path is wrong");
                    return null;
                }

                DataContractSerializer deserializer = new DataContractSerializer(typeof(T));

                using (Stream stream = File.OpenRead(fileName))
                {
                    return (T)deserializer.ReadObject(stream);
                }
            }
        }

}

Xml-Datei ist XmlParameter.xml

<?xml version="1.0" encoding="utf-8" ?>
<parameter>
  <name>bands_amounts</name>
  <label>Bands Amounts</label>
  <unit></unit>
  <component>
    <type>List</type>
    <attributes>
      <type>Integer</type>
      <displayed>4</displayed>
      <add_remove>yes</add_remove>
      <item>1 000 000</item>
      <item>5 000 000</item>
      <item>10 000 000</item>
      <item>20 000 000</item>
    </attributes>
    <attributes>
      <ccypair>XAUUSD</ccypair>
      <item>100</item>
      <item>500</item>
      <item>1000</item>
    </attributes>
  </component >
</parameter>

**Es arbeitet ohne Fehler, aber ich Frage mich, warum es immer null-Objekt(debugging) auch der Weg von XmlParameter.xml Datei ist korrekt. Ist es durch die Verwendung von "[DataContract] - " statt [Serialisiert] ? weil es si silverlight-Anwendung. Eigentlich habe ich todisplay der Elemente in den Knoten wie,ich habe die Anzeige "XAUUSD" in meinem attribute.cs Klasse, die in Knoten <ccypair>XAUUSD</ccypair> **

InformationsquelleAutor Sss | 2014-04-30
Schreibe einen Kommentar