2016-12-28 2 views
2

я видел в ссылке ниже: Can execute Code Dynamically in monotouch?динамика в андроида Xamarin

, что невозможно использовать динамический в ИО Xamarin. как насчет в Andoid xamarin?

я попытался сделать следующее:

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

Однако, когда я хочу, чтобы получить доступ к MyDinamic.A, он говорит, что Неизвестный Пользователь: A.

Может кто-то пожалуйста, помогите? Благодарю.

Edit: Я также добавил DLL Microsoft.Csharp в ссылке решения как на скриншоте:

enter image description here

+0

Я использовал динамический в андроида контекста для выполнения битовых операций на общих переменном - это, кажется, работают нормально. Может быть, это расширенный объект ExpandoObject, который не поддерживается полностью? Я предполагаю, что ошибка возникает во время выполнения? – Marwie

ответ

2

Я не уверен, IDE вы использовали для разработки вашего Xamarin андроид приложение, на моей стороне я использовал VS2015, и ошибка

Отсутствует компилятор необходимый элемент 'Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create'

Это связано с тем, что при использовании динамического ключевого слова в вашем проекте. Сборка содержит связующее средство C#. Чтобы решить эту проблему, необходимо добавить ссылку на библиотеку Microsoft.CSharp (Microsoft.CSharp.dll) в нашем проекте:

enter image description here

После добавления этой ссылки, ваш код работает хорошо на моей стороне.

Но я не уверен, что Xamarin.Android ограничит использование динамического объекта, поскольку я не нашел никаких ограничений в официальном документе xamarin. Для получения дополнительной информации о динамическом объекте, вы можете обратиться к:

System.Dynamic.DynamicObject Class

System.Dynamic.ExpandoObject Class

Смежные вопросы