1

私はDIコンテナの世界の初心者です。現在、Windsor Castle を使用しており、命名規則に従ってコンテナーを構成しようとしています。これが私がやろうとしていることの例です:

interface INode{}
interface INodeType1: INode{}
interface INodeType2: INode{}

interface INodeConverter{}
class NodeType1Converter:INodeConverter{}
class NodeType2Converter:INodeConverter{}

ユーザーがさまざまな種類のノードをドラッグ アンド ドロップしてフローシートを作成できるアプリケーションです。特定の時点で、これらのノードを特定の形式に変換する必要があり、各ノードには独自の変換方法があります。

INodeType1 を解決するときに、NodeType1Converter のインスタンスを受け取りたいと考えています。INodeType2 --> NodeType2Converter の場合、...

WithService.Select を使用して登録しようとしましたが、成功しませんでした:

container.Register(Classes.FromThisAssembly()
                .InSameNamespaceAs<INodeConverter>()
                .WithService.Select((type, types) => type.Name.EndsWith("Converter")  && type.Name .StartsWith ("don't know what to do here?!?")
                                                    ? new[] { type.BaseType }
                                                    : Enumerable.Empty<Type>()));

誰か助けてくれませんか?

ありがとう、フィリップ

4

0 に答える 0