protected override object CreateInstance(Type type, string referenceName, LinkedList<object> buildChain,
params object[] args)
{
Debug.Assert(type != null, "type != null");
if (type.IsInterface)
{
var internalType = FindEnumerableTypeArgument(type);
var genericTypeDefinition = typeof(List<string>).GetGenericTypeDefinition();
var genericType = genericTypeDefinition.MakeGenericType(internalType);
return Activator.CreateInstance(genericType);
}
return Activator.CreateInstance(type, args);
}