Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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# NRefactory是否理解WinRT语言投影?_C#_Windows Runtime_Icsharpcode_Nrefactory - Fatal编程技术网

C# NRefactory是否理解WinRT语言投影?

C# NRefactory是否理解WinRT语言投影?,c#,windows-runtime,icsharpcode,nrefactory,C#,Windows Runtime,Icsharpcode,Nrefactory,NRefactory是否理解C#中的WinRT语言投影?如果不是,那么将此功能添加到工厂的最简单方法是什么 下面的单元测试似乎表明它目前不支持它。解析Windows.Globalization.ApplicationLanguages.Languages[0]应解析为System.String,但此操作失败。我的理论是,解析器希望找到一个索引器,但没有,因为它实际上是一个IVector.GetAt(…)项目 要重现此问题,请克隆NRefactory,并添加文件ICSharpCode.NRefac

NRefactory是否理解C#中的WinRT语言投影?如果不是,那么将此功能添加到工厂的最简单方法是什么

下面的单元测试似乎表明它目前不支持它。解析
Windows.Globalization.ApplicationLanguages.Languages[0]
应解析为System.String,但此操作失败。我的理论是,解析器希望找到一个索引器,但没有,因为它实际上是一个
IVector.GetAt(…)
项目

要重现此问题,请克隆NRefactory,并添加文件
ICSharpCode.NRefactory.Tests\CSharp\Resolver\WinrtTests.cs

using ICSharpCode.NRefactory.TypeSystem;
using NUnit.Framework;

namespace ICSharpCode.NRefactory.CSharp.Resolver
{
    public class WinrtTests : ResolverTestBase
    {
        public override void SetUp()
        {
            var loader = new CecilLoader();
            project = new CSharpProjectContent().AddAssemblyReferences(new [] {
                CecilLoaderTests.Mscorlib,
                loader.LoadAssemblyFile(@"C:\Program Files (x86)\Windows Kits\8.1\References\CommonConfiguration\Neutral\Windows.winmd")
            });
            compilation = project.CreateCompilation();
        }

        [Test]
        public void FixedStatement()
        {
            const string program =
                @"class TestClass
                {
                    static void Main()
                    {
                        var i = $Windows.Globalization.ApplicationLanguages.Languages[0]$;
                    }
                }";

            var rr = Resolve(program);
            Assert.AreEqual("System.String", rr.Type.FullName);
        }
    }
}