我正在使用Autofac(我已經在控制檯應用程序中註冊了基本nuget包)並且想要查看註冊列表。LINQ不能在IEnumerable上工作
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);
這裏的智能感知不給我消息當LINQ方法但是它並儘可能我可以告訴沒有任何警告編譯錯誤。
我試圖進一步下來
IEnumerable<string> list = new List<string>();
list.Where(x => true);
和智能正常工作,給我所有的標準列表的方法。
我已經嘗試了這從幾個不同的應用程序從頭開始,我得到了相同的行爲。
關於發生了什麼事情的任何想法?
編輯:
以下工程和智能感知
IEnumerable<IComponentRegistration> test = new List<IComponentRegistration>();
test.Where(x => true);
正確顯示我使用
從的NuGet <package id="Autofac" version="3.0.1" targetFramework="net45" />
。
和懸停在ComponentRegistrations給人但是我得到同樣的事情
,並在這種情況下,範圍被定義爲
ILifetimeScope _scope;
,如果我直接嘗試關閉此
var builder = new ContainerBuilder();
var appContainer = builder.Build();
appContainer.ComponentRegistry.Registrations.Where(x => true);
另外IComponentRegistry被定義爲(在Autofac中)
public interface IComponentRegistry : IDisposable
{
...
IEnumerable<IComponentRegistration> Registrations { get; }
...
}
我有其他人也嘗試這個,他們有相同的問題 – 2013-02-21 01:16:44
我也上傳了一個演示,顯示intellisense不工作https://dl.dropbox.com/u/78170732/ConsoleApplication1.zip – 2013-02-21 01:30:28
如果我正確地理解了你,並且問題在於智能感知不能在appContainer.ComponentRegistry.Registrations行上工作。Where(x => true);你應該嘗試並禁用你的插件,看看它是否照顧它,因爲它對我來說工作得很好。既然你說你有別人確認它,也許從你的安裝有共同點的任何插件開始。 – 2013-02-21 06:03:52