私は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>()));
誰か助けてくれませんか?
ありがとう、フィリップ