2017-04-12 5 views
2

Ich versuche, einige Klassen aus einem MVC-Projekt in ihre eigene .Net Core-Klassenbibliothek in derselben Lösung zu extrahieren. Bisher habe ich diese Klasse in die neue Klassenbibliothek hinzugefügt:Neue .Net-Stammverzeichnis-Serialisierungsattribute funktionieren nicht

[DataContract] 
public class EmailStatusNotification 
{ 
    [DataMember(Name = "nothing_interesting")] 
    public string TestProp { get; set; } 
} 

[DataContract] zeigt einen Fehler:

Kann nicht Attributklasse anwenden DataContract weil es abstrakt ist.

[DataMember] zeigt einen Fehler:

Der Typ Object ist in einer Baugruppe definiert, die nicht verwiesen wird. Sie müssen der Baugruppe mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 einen Verweis hinzufügen.

Was ist wahrscheinlich die Ursache dafür? Ich habe keine Abhängigkeiten vom Projekt entfernt.

+0

Haben Sie die Version von .NET framerowk überprüft, gegen die Sie bauen? –

+0

@ m.rogalski Danke, ich habe gerade eine Antwort auf die Frage geschrieben. Das funktionierte zwei Tage lang nicht, und plötzlich wiederholte es den Prozess zum millionsten Mal. Es scheint so, als ob das Konzept "Wenn du es nicht repariert hast, es ist nicht behoben" nicht in Microsofts schönem Ökosystem gilt. – CanadaIT

Antwort

0

Ich habe die Klassenbibliothek genau zum fünften oder sechsten Mal neu erstellt und es hat auf wundersame Weise angefangen zu arbeiten. Ich bin fast sicher, dass dies ein Bug/Feature von Visual Studio war, aber ich weiß nicht einmal, wie ich darüber berichten soll, da es so abstrakt ist.

2

Ich lief in genau das gleiche Problem mit [DataContract] und [DataMember]. Es stellt sich heraus, dass es einen zusätzlichen Assembly-Verweis auf System.Runtime.Serialization gab, der einige Unklarheiten verursachte, wenn versucht wurde, den DataContractAttribute zu verwenden. Durch Entfernen der Baugruppenreferenz wurde der Fehler behoben. Ich vermute, dass eines der Male, die Sie die Bibliothek neu erstellt haben, Sie die Referenzen auch gelöscht haben.

Verwandte Themen