/// <summary> /// Start the definition of a child instance by defining the concrete type /// </summary> /// <param name="pluggedType"></param> /// <returns></returns> public ConfiguredInstance IsConcreteType(Type pluggedType) { ExpressionValidator.ValidatePluggabilityOf(pluggedType).IntoPluginType(_childType); var childInstance = new ConfiguredInstance(pluggedType); _instance.SetChild(_propertyName, childInstance); return(_instance); }
public CreatePluginFamilyExpression <PLUGINTYPE> TheDefaultIsConcreteType <CONCRETETYPE>() where CONCRETETYPE : PLUGINTYPE { Type concreteType = typeof(CONCRETETYPE); ExpressionValidator.ValidatePluggabilityOf(concreteType).IntoPluginType(_pluginType); if (!PluginCache.GetPlugin(concreteType).CanBeAutoFilled) { throw new StructureMapException(231); } return(alterAndContinue(family => { ConfiguredInstance instance = new ConfiguredInstance(concreteType).WithName(concreteType.AssemblyQualifiedName); family.AddInstance(instance); family.DefaultInstanceKey = instance.Name; })); }