1

私のコードは:

var serverManager = new ServerManager();
var regex = new Regex("^(http|https)://");
var host = regex.Replace(url, "");
var instance = serverManager.Sites.First(
    site => site.Bindings.First(
        binding => binding.Host == host
    )
);

Bindingsコレクションであり、このコレクションの特定のアイテムが必要なため、最初の属性で2番目の選択を実行しようとしていることがわかります。このエラーが発生します:

Cannot implicitly convert type 'Microsoft.Web.Administration.Binding' to 'Bool'.

それを解決するためのアイデアはありますか?

4

2 に答える 2

2

あなたが探しています

var instance = serverManager.Sites.First(
    site => site.Bindings.Any(
        binding => binding.Host == host
    )
);

site.Bindings.First(binding => binding.Host == host)を返しますがBinding、それは、の内部にありserverManager.Sites.First(...)、述語(を返すbool)を期待しますが、。を期待しBindingます。

上記のスニペットAnyは、とのバインディングを持つ最初のサイトを取得するために使用しますHost == host

于 2012-08-23T12:17:30.210 に答える
1
var instance = serverManager.Sites.SelectMany(b =>b.Bindings).First(
                binding => binding.Host == host);

それはそれを修正する必要があります。

于 2012-08-23T12:14:20.097 に答える