Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Mono支持Android吗;“动态”;关键词&;扩展对象?_C#_Dynamic_Xamarin.android_Expandoobject - Fatal编程技术网

C# Mono支持Android吗;“动态”;关键词&;扩展对象?

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

我想在我正在进行的项目中使用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

以下是简单的测试代码:

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中的“添加引用”概念。但奇怪的是,出于某种原因,我的“添加引用”对话框与您的完全不同。没问题!不同的添加引用对话框是由于安装了此扩展: