internal static bool TryCreateReference( Type candidateType, out IDataProcessorReference reference) { Guard.NotNull(candidateType, nameof(candidateType)); reference = null; if (candidateType.IsPublicAndInstantiatableOfType(typeof(IDataProcessor))) { // There must be an empty, public constructor if (candidateType.TryGetEmptyPublicConstructor(out var constructor)) { try { reference = new DataProcessorReference(candidateType); } catch (InvalidOperationException e) { Console.Error.WriteLine($"Data processor disabled: {candidateType}."); Console.Error.WriteLine($"{e.Message}"); return(false); } } } return(reference != null); }
/// <summary> /// Generate a data processor reference from a given type. /// </summary> /// <param name="candidateType"> /// Data extension type. /// </param> /// <param name="reference"> /// Data extension reference. /// </param> /// <returns> /// <c>true</c> if succeeded, <c>false</c> otherwise. /// </returns> public bool TryCreateDataProcessorReference( Type candidateType, out IDataProcessorReference reference) { Guard.NotNull(candidateType, nameof(candidateType)); return(DataProcessorReference.TryCreateReference(candidateType, out reference)); }
public bool AddDataProcessorReference(IDataProcessorReference dataProcessorReference) { Guard.NotNull(dataProcessorReference, nameof(dataProcessorReference)); return(this.dataProcessors.Add(dataProcessorReference)); }