public void Initialize(string code) { var textInfo = CultureInfo.InvariantCulture.TextInfo; var parameters = code.Replace("(", ",") .Replace(")", ",") .Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries) .ToList().Skip(1).Select(x => x.Trim()).ToArray(); var classToken = code.Contains("(") ? code.Replace(" ", "").Substring(0, code.IndexOf('(')) : code; var className = textInfo.ToTitleCase(classToken.Trim().Replace("-", " ")).Replace(" ", "").Replace("Datetime", "DateTime"); var clazz = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(t => t.GetTypes()) .Where( t => t.IsClass && t.IsAbstract == false && t.Name == className && t.GetInterface("INativeTransformation") != null) .SingleOrDefault(); if (clazz == null) { throw new NotImplementedTransformationException(className); } transformation = (INativeTransformation)Activator.CreateInstance(clazz, parameters); }
public void Initialize(string code) { var textInfo = CultureInfo.InvariantCulture.TextInfo; var className = textInfo.ToTitleCase(code.Trim().Replace("-", " ")).Replace(" ", ""); var clazz = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(t => t.GetTypes()) .Where( t => t.IsClass && t.IsAbstract == false && t.Name == className && t.GetInterface("INativeTransformation") != null) .SingleOrDefault(); if (clazz == null) { throw new NotImplementedTransformationException(code); } transformation = (INativeTransformation)Activator.CreateInstance(clazz); }
public void Initialize(string code) => transformation = new NativeTransformationFactory().Instantiate(code);