Ich versuche, alle CLS-konformen Fehler zu beseitigen, die wir in unserer gesamten Lösung haben. Während ich es geschafft habe, mehrere zu sortieren (z. B. öffentliche Variablen, die mit einem Unterstrich beginnen und unsignierte Ganzzahlen verwenden), gibt es einige, bei denen ich nicht den Grund dafür finde, warum sie versagen.
Ich habe den ganzen für eines der Probleme relevanten Code eingefügt, es gibt eine Menge Code, aber er besteht nur aus einem Formularkonstruktor, einer Schnittstelle und einer Klasse, die die Schnittstelle implementiert.
VB.Net-Formularkonstruktor (die Warnung befindet sich im Parameter unitOfWork
und liest Der Typ des Parameters 'unitOfWork' ist nicht CLS-kompatibel :
Die Schnittstelle IUnitOfWork
lautet wie folgt:
Und die einzige Implementierung der Schnittstelle (und daher die, deren Instanz an den Formularkonstruktor übergeben wird) ist dies:
%Vor%Ich bin entweder blind für das Problem (könnte der Fall sein, da ich seit Ewigkeiten darauf gestarrt habe!) oder es gibt eine andere CLS-Compliance-Einschränkung, die mir nicht bewusst ist. Irgendwelche Vorschläge?
Meine Vermutung ist, dass Ihre C # -Bibliothek selbst nicht mit CLSCompliant gekennzeichnet ist. Ich habe den Fehler einfach dupliziert, wobei das VB-Projekt als CLSCompliant gekennzeichnet wurde und die C # -Bibliothek, auf die verwiesen wird, nicht als CLSCompliant gekennzeichnet ist.
Ich habe die C # -Bibliothek mit CLSCompliant markiert, und die Warnung wurde gelöscht.
Könnte es IsolationLevel isolationLevel
von ISession
sein? Die Namen können sich nicht nach Gehäuse unterscheiden.
Alle Namen innerhalb eines CLS-konformen Bereichs müssen eindeutig sein, auch wenn die Namen für zwei verschiedene Arten von Membern gelten, außer wenn die Namen identisch sind und durch Überladen aufgelöst werden. Zum Beispiel erlaubt der CLS keinem einzigen Typ, denselben Namen für eine Methode und ein Feld zu verwenden.
Tags und Links c# vb.net cls-compliant