protected override ObjectDef buildObjectDef() { var def = new ObjectDef(typeof(InputBehavior <>), _inputType); var readerType = typeof(IReader <>).MakeGenericType(_inputType); var enumerableType = typeof(IEnumerable <>).MakeGenericType(readerType); var dependency = new ListDependency(enumerableType); dependency.AddRange(Readers.OfType <IContainerModel>().Select(x => x.ToObjectDef())); def.Dependency(dependency); return(def); }
protected override ObjectDef buildObjectDef() { var def = new ObjectDef(typeof(OutputBehavior <>), _resourceType); Type mediaType = typeof(IMedia <>).MakeGenericType(_resourceType); Type enumerableType = typeof(IEnumerable <>).MakeGenericType(mediaType); var dependency = new ListDependency(enumerableType); dependency.AddRange(Writers.OfType <IContainerModel>().Select(x => x.ToObjectDef())); def.Dependency(dependency); return(def); }
protected override sealed ObjectDef buildObjectDef() { var objectDef = new ObjectDef(behaviorType().MakeGenericType(InputType)); var mediaReaderType = getReaderWriterType().MakeGenericType(InputType); var readerDependencies = new ListDependency(typeof(IEnumerable <>).MakeGenericType(mediaReaderType)); readerDependencies.AddRange(createBuilderDependencies()); objectDef.Dependency(readerDependencies); return(objectDef); }