C# Mono支持Android吗;“动态”;关键词&;扩展对象?
我想在我正在进行的项目中使用DynamicExpandoobjects,但它没有使用我认为正确的配置进行编译 从我看到的情况来看,Mono支持dynamic关键字和ExpandooObject,所以我假设这要么是配置问题,要么是Android在Mono中不可能实现 但是,当我尝试使用它时,在Visual Studio 2010中会收到以下错误消息: 错误3找不到编译动态表达式所需的一个或多个类型。是否缺少对Microsoft.CSharp.dll和System.Core.dll的引用?D:\HMI\ExpandoTest\ExpandoTest\Activity1.cs 34 17 ExpandoTest 错误1未定义或导入预定义类型“Microsoft.CSharp.RuntimeBinder.Binder”ExpandoTest 以下是简单的测试代码:C# Mono支持Android吗;“动态”;关键词&;扩展对象?,c#,dynamic,xamarin.android,expandoobject,C#,Dynamic,Xamarin.android,Expandoobject,我想在我正在进行的项目中使用DynamicExpandoobjects,但它没有使用我认为正确的配置进行编译 从我看到的情况来看,Mono支持dynamic关键字和ExpandooObject,所以我假设这要么是配置问题,要么是Android在Mono中不可能实现 但是,当我尝试使用它时,在Visual Studio 2010中会收到以下错误消息: 错误3找不到编译动态表达式所需的一个或多个类型。是否缺少对Microsoft.CSharp.dll和System.Core.dll的引用?D:\HM
using System;
using System.Dynamic;
using System.Collections.Generic;
using System.Runtime;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
namespace ExpandoTest
{
[Activity (Label = "ExpandoTest", MainLauncher = true, Icon = "@drawable/icon")]
public class Activity1 : Activity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
// Set our view from the "main" layout resource
SetContentView (Resource.Layout.Main);
// Test the expando stuff
TestExpando();
}
private void TestExpando()
{
dynamic obj = new ExpandoObject();
int x = 10;
obj.x = x; // This line and the next one generate compiler errors
obj["X"] = x;
}
}
}
正如编译器错误消息所述,您需要添加对Microsoft.CSharp程序集的引用,以便使用dynamic关键字:
注意:我尝试在MonoDevelop 3.0下编译,但也遇到了同样的错误。不确定它是否相关,但我也安装了Unity,它安装了MonoDevelop的另一个版本。不过,这两个人似乎没有以任何其他方式相互干扰。谢谢格雷格,这就解决了问题!我职业生涯的大部分时间都在嵌入式系统领域工作,最近在Xcode工作。我不熟悉VS2010中的“添加引用”概念。但奇怪的是,出于某种原因,我的“添加引用”对话框与您的完全不同。没问题!不同的添加引用对话框是由于安装了此扩展: