Silverlight 4 und das “dynamic” Keyword

by wmn 25. June 2010 14:09

Nur weil ich heute auch eine Weile danach gesucht habe dokumentiere ich das hier. Vielleicht spart es ja dem ein oder anderen Kollegen die Zeit für die Suche.

Seit VS2010 kann man auch in Silverlight 4 das Keyword “dynamic” verwenden. Ich habe es im Zusammenspiel mit einem selbst geschriebenen COM-Server benötigt. Diesen instanziiere ich wie folgt:

image

Dieser Code lässt sich kompilieren und ausführen d.h. der COM-Server wird korrekt instanziiert. Die Probleme kommen aber jetzt:

image

Durch dynamic hat man kein Intellisense mehr! Somit werden die vorhandenen Methoden und Eigenschaften des COM-Servers im Editor nicht angezeigt oder validiert – sollte man meinen?! Trotzdem ist der korrekte Methodenaufruf in der zweiten Zeile rot unterstrichen und lässt sich so auch nicht kompilieren. Was nun?

  • Die Namespaces sind alle korrekt in der aktuellen Datei
  • Die Referenzen im Projekt scheinen auch alle richtig und vollständig zu seinimage
  • Der COM-Server, eine separate C# Klassenbibliothek lässt sich als Referenz nicht ins Silverlight Projekt einbinden

Die Lösung ist wie immer einfach – wenn man’s weiß:  Es fehlt doch eine Referenz im Projekt:

image

Das wars! Jetzt wird im Editor nichts mehr validiert, was mit dynamischen  Objekten zu tun hat und kompilieren lässt sich das Ganze auch. Das Problem ist halt, dass Fehler erst zur Laufzeit zur Exception führen.

Tags:

Silverlight