私は新しいプロジェクトでMEFとWindsorと協力しています。ウィンザーパッケージとコードブレークが更新されました。我々が持っているために使用する :MefContrib.SamplesからWindsor.CastleがIHandlerを変更します。サービスが終了しましたか?
private void RegisterCastleComponent(IHandler handler)
{
var name = handler.ComponentModel.Name;
var type = handler.Service;
// By default, Windsor assigns implementation's full name for the key,
// but for a default key we want to pass null instead
if (handler.ComponentModel.Implementation.FullName == name)
{
name = null;
}
OnRegisteringComponent(type, name);
}
ウィンザーdoesntのはCastle.Windsor.dllでそのIHandlerで.Service、v4.0.30319
方法を持っています私は上記を実装する必要がありますか?
IEnumerableの.Servicesを取得できます。 最初に登録してください。何が意味ですか?
なぜ今サービスがあるのですか?
おかげ
実際、行くと確認しなかったBreakingChanges.txt:
========================== ==============================================================================================================================================================================================変更 - サービスは内部的に処理されます。これには、 APIにいくつかの変更が含まれています。 ForwardingHandlerクラスとIHandlerFactory.CreateForwardingメソッドが削除されました。 ComponentModel.ServiceプロパティがClassServiceおよびInterfaceServices プロパティに置き換えられました。また、AddServiceメソッドが追加されました。サービスのコンストラクタの引数は、単一のTypeの代わりに をType []に変更しました。 IHandler.Serviceプロパティが削除され、Servicesプロパティに置き換えられました。 IComponentModelBuilder.BuildModelメソッドは、ICollection isnteadを単一のタイプ のサービスとして使用します。ComponentRegistration.For(型serviceType、params型[] forwaredTypes)メソッドが削除されました。低 定着性 - - 容易
説明 - 改善の一環として内部アーキテクチャに一つのサービスより 以上を露出コンポーネントの処理方法変更 ComponentFilterデリゲート型はもはや必要
影響として除去しました。
修正 - この変更は、コンテナの内部を拡張しない限り、ほとんどのユーザーに影響しません。 の場合は、新しいシグネチャへの呼び出しを調整し、コードを変更して、ForwardedHandlersが特定のコンポーネントに対してIHnadlerを解決するサービスコレクションを使用するようにする================= ========================================== =====
私はそれがかなり私の質問に答えるthikn。
またはそれはありません: これは実際の実装ですか? サービス名のalogのタイプを取得するには?デフォルトキーの "handler.ComponentModel.Implementation.FullName"に対するチェックを行います。
またはそのままそのまま渡しましたか?
おかげ
これは何の問題かと思われます。 ComponentModelはそれ以上サービスを通知しません。最新のCastle.Windsor.dll、v4.0.30319をチェックして、breakinChanges.txtの抜粋を確認してください。したがって、新しいものでは、実装には多くのサービスがあります。私の問題が見えますか?私は本当に嫌なことを逃していますか? – ErMasca
Lol、 'IHandler'は' Services'を公開しなくなりましたが、 'IHandler.ComponentModel'はまだそれが必要ですか? –
わずかな修正、サービスはIHandlerにはなく、ComponentModel.Servicesは公開されていますが、サービスはありません。どのように実装の下で適切に型を登録しますか? – ErMasca