2016-12-28 3 views
2

i in den unten stehenden Link gesehen haben: Can execute Code Dynamically in monotouch?dynamisch in android Xamarin

, dass es unmöglich ist, dynamisch zu verwenden, in ios Xamarin. Wie wäre es mit Andoid Xamarin?

Ich habe versucht, die folgendes zu tun:

  dynamic MyDynamic = new System.Dynamic.ExpandoObject(); 
      MyDynamic.A = "A"; 
      MyDynamic.B = "B"; 

Allerdings, wenn ich MyDinamic.A zugreifen wollen, heißt es, dass Unbekannte Mitglied: A.

Kann jemand bitte helfen? Vielen Dank.

Edit: Ich habe auch die Microsoft.CSharp dll in der Lösung Referenz gemäß dem Screenshot hinzugefügt:

enter image description here

+0

ich dynamisch in android Kontext verwendet, um bitweise Operationen auf generische Variablen ausführen - es scheint normal zu arbeiten. Vielleicht ist es das ExpandoObject, das nicht vollständig unterstützt wird? Ich nehme an, der Fehler tritt in der Laufzeit auf? – Marwie

Antwort

2

Ich bin nicht sicher, welche IDE haben Sie Ihre Xamarin Android verwenden App für die Entwicklung, an meiner Seite habe ich VS2015, und der Fehler ist

Compiler erforderlich Mitglied fehlt 'Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create'

Dies liegt daran, wenn Sie das dynamische Schlüsselwort in Ihrem Projekt verwenden. Die Assembly enthält den Laufzeitbinder C#. Um dieses Problem zu lösen, müssen wir Bezug auf Microsoft.CSharp Bibliothek (Microsoft.CSharp.dll) in unserem Projekt hinzuzufügen:

enter image description here

Nach dem Hinzufügen dieser Referenz Code läuft gut an meiner Seite.

Aber ich bin mir nicht sicher, ob der Xamarin.Android die Verwendung von dynamischen Objekt einschränken wird, durch ich fand keine Einschränkung in Xamarins offiziellen Dokument. Weitere Informationen zum dynamischen Objekt, können Sie sich beziehen:

System.Dynamic.DynamicObject Class

System.Dynamic.ExpandoObject Class