private static T CreateImplementationInstanceInternal <T>(IDetectable detectable, List <ParametersPair> parametersList, List <object> interfacesList) { Type type = detectable.Implementation; ParametersPair parameterPair = parametersList.SingleOrDefault(item => item.TypeName == detectable.GetType().AssemblyQualifiedName); if (parameterPair == null && !interfacesList.Any()) { return((T)Activator.CreateInstance(type)); } else { List <object> parameters = new List <object>(); if (parameterPair != null) { parameters.AddRange(parameterPair.Parameters); } parameters.AddRange(interfacesList); return((T)Activator.CreateInstance(type, parameters.ToArray())); } }
public MixedSearchEngineDataView(int orderIndex, ParametersPair instance) { OrderIndex = orderIndex; this.instance = instance; }