private static void SetComponent <T>(ITradingStrategyComponent component, ref T obj) { if (component == null) { throw new ArgumentNullException(); } if (component is T) { // ReSharper disable CompareNonConstrainedGenericWithNull if (obj == null) // ReSharper restore CompareNonConstrainedGenericWithNull { obj = (T)component; } else { throw new ArgumentException(string.Format("Duplicated {0} objects", typeof(T))); } } else { throw new ArgumentException(string.Format("unmatched component type {0}", typeof(T))); } }
public static TradingStrategyComponentSettings GenerateExampleSettings( ITradingStrategyComponent component) { if (component == null) { throw new ArgumentNullException(); } var settings = new TradingStrategyComponentSettings { Enabled = false, ClassType = component.GetType().AssemblyQualifiedName, Name = component.Name, Description = component.Description }; var interfaces = component.GetType().GetInterfaces() .Where(i => typeof(ITradingStrategyComponent).IsAssignableFrom(i)) .Select(i => i.Name); settings.ImplementedInterfaces = string.Join(";", interfaces); settings.ComponentParameterSettings = ParameterHelper.GetParameterAttributes(component) .Select(ParameterSettings.GenerateExampleSettings) .ToArray(); return(settings); }
private static void SetComponent <T>(ITradingStrategyComponent component, ref T obj) { if (component == null) { throw new ArgumentNullException(); } if (component is T) { if (obj == null) { obj = (T)component; } else { throw new ArgumentException(string.Format("Duplicated {0} objects", typeof(T))); } } else { throw new ArgumentException(string.Format("unmatched component type {0}", typeof(T))); } }