LINQ不在IEnumerable上工作
我正在使用Autofac(我已经在一个控制台应用程序中注册了基本nuget软件包),想看看注册列表LINQ不在IEnumerable上工作,linq,ienumerable,intellisense,autofac,Linq,Ienumerable,Intellisense,Autofac,我正在使用Autofac(我已经在一个控制台应用程序中注册了基本nuget软件包),想看看注册列表 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Autofac; namespace ConsoleApplication2 { class Program { stat
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autofac;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
// First, create your application-level defaults using a standard
// ContainerBuilder, just as you are used to.
var builder = new ContainerBuilder();
var appContainer = builder.Build();
appContainer.ComponentRegistry.Registrations.Where(x => true);
}
}
}
问题在于线路
appContainer.ComponentRegistry.Registrations.Where(x => true);
在这里,intellisense并没有给我Where linq方法,但据我所知,它确实可以编译,并且没有任何警告和消息中的错误
我试着再往下一点
IEnumerable<string> list = new List<string>();
list.Where(x => true);
然而,如果我直接尝试这个,我会得到同样的结果
var builder = new ContainerBuilder();
var appContainer = builder.Build();
appContainer.ComponentRegistry.Registrations.Where(x => true);
此外,IComponentRegistry定义为(在Autofac中)
公共接口IComponentRegistry:IDisposable
{
...
IEnumerable注册{get;}
...
}
尝试将linq表达式指定给一个变量,并查看它是否有效
如果我理解正确的话,你的问题是intellisense没有在线工作
appContainer.ComponentRegistry.Registrations.Where(x => true);
你可能应该试着禁用你的插件,看看这是否能解决它,因为它对我来说工作得很好。既然你说你有其他人确认过了,那就从你安装的插件开始吧 我也让其他人尝试过,他们也有同样的问题。我还上传了一个演示,显示如果我理解正确,intellisense无法工作,您的问题是intellisense无法在appContainer.ComponentRegistry.Registrations.Where(x=>true)行上工作;你可能应该试着禁用你的插件,看看这是否能解决它,因为它对我来说工作得很好。既然你说你有其他人确认过,也许可以从你安装的所有插件开始。我还记得intellisense在VS2012中完全丢失的一些问题,通常通过重新启动VS来解决。但你描述的方式似乎不是选择性的。为了将来的参考,这是为了将来的参考
var builder = new ContainerBuilder();
var appContainer = builder.Build();
appContainer.ComponentRegistry.Registrations.Where(x => true);
public interface IComponentRegistry : IDisposable
{
...
IEnumerable<IComponentRegistration> Registrations { get; }
...
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autofac;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
// First, create your application-level defaults using a standard
// ContainerBuilder, just as you are used to.
var builder = new ContainerBuilder();
var appContainer = builder.Build();
var registrations = appContainer.ComponentRegistry.Registrations.Where(x => x.Target.Equals("test"));
}
}
}
appContainer.ComponentRegistry.Registrations.Where(x => true);