public static SpecialNamingBase GetNamingProcessor(NamingApproach approach, string namingCode)
{
const string ns = "RadaCode.InDoc.Data.DocumentNaming.SpecialNamings.Namings";
var dataAssembly = typeof(RadaCode.InDoc.Data.DocumentNaming.SpecialNamings.SpecialNamingBase).Assembly;
var classes = SpecialNamingsFactory.GetAllClasses(ns, dataAssembly);
var res = new List<string>();
foreach (var inst in classes.Select(namingClass => string.Format("{0}.{1}", ns, namingClass)).Select(toCreate => dataAssembly.GetType(toCreate)).Select(type => Activator.CreateInstance(type, approach)).Where(inst => ((SpecialNamingBase)inst).SpecialCode == namingCode))
{
return inst as SpecialNamingBase;
}
throw new Exception(string.Format("No class found that is able to process {0} code", namingCode));
}