2012-07-25 22 views
5

Derzeit funktionieren nicht einmal die einfachsten Beispiele für die Verwendung von 'ExpandoObject' auf meinem Computer.Warum funktioniert ExpandoObject nicht wie erwartet?

Beide

dynamic obj = new ExpandoObject(); 
obj.Value = 10; 
var action = new Action<string>((line) => Console.WriteLine(line)); 
obj.WriteNow = action; 
obj.WriteNow(obj.Value.ToString()); 

(from this website) und

dynamic sampleObject = new ExpandoObject(); 
sampleObject.test = "Dynamic Property"; 
Console.WriteLine(sampleObject.test); 

(from the MSDN examples) nicht mit einem RuntimeBinderException. Ich nehme an, ich habe etwas falsch konfiguriert, aber ich weiß nicht, was es sein könnte.

Ich verwende .NET v4.0.30319 und Visual Studio 2010 SP1 Premium. Bitte fragen Sie nach etwas anderem, was Sie wissen müssen. =)

+0

Wild. Was für ein Projekt ist das - Konsole? –

+0

Ja, es ist .. und ich habe gerade versucht, eine neue, leere Konsolenanwendung zu erstellen, und es funktioniert dort! Ich sollte aufhören, eine einzelne Konsolenanwendung für alle meine Hacking zu verwenden, scheint es. Danke =) – Jens

+0

Ah, und es funktioniert auch außerhalb des Debuggers .. Sehr seltsam. – Jens

Antwort

2

Durch das Löschen der versteckten Datei "SolutionName.suo" im Lösungsverzeichnis wurde dieses Problem für mich behoben.

Ich habe immer noch keine Ahnung, warum es passiert ist, obwohl.

Edit: Andras Zoltan, wer seine Antwort gelöscht, richtig geraten. Ich habe "Pause bei allen Ausnahmen" aktiviert und war dumm. =)

0

Das Problem ist einfach, dass zu viele Überladungen hat und so der dynamische Teil nicht richtig berechnet werden kann. Setzen Sie die Ausgabe in eine typisierte Variable vor oder werfen Sie sie einfach um. z.B.

dynamic sampleObject = new ExpandoObject(); 
sampleObject.test = "Dynamic Property"; 
Console.WriteLine((string)sampleObject.test); 
+0

Danke! Das ist es aber nicht. Derselbe Code funktioniert, wenn er in einem anderen Projekt verwendet wird und auch ohne Debugger ausgeführt wird. – Jens

+0

Aber die Typumwandlung in String löst das Problem zwar. –

+0

Tut es nicht in meinem Projekt, sorry. – Jens

Verwandte Themen