GenoTipController должен создать класс в соответствии с типом перечисления. у меня есть 3 класса: _Company, _Muayene, _Radyoloji. Также у меня есть метод GetPersonel класса CompanyView. если вы посмотрите GenoTipController, мои коды требуют рефакторинга. Ты меня понимаешь? мне нужен класс в соответствии с типом ewnum, я должен произвести класс. Например; case DataModelType.Radyoloji должен вернуть radyoloji = new Radyoloji. Все должно быть в одном корпусе?
public abstract class _Company
{
public abstract List<Personel> GetPersonel();
public abstract List<Prim> GetPrim();
public abstract List<Finans> GetFinans();
}
public abstract class _Radyoloji
{
public abstract List<string> GetRadyoloji();
}
public abstract class _Satis
{
public abstract List<string> GetSatis();
}
public abstract class _Muayene
{
public abstract List<string> GetMuayene();
}
public class Company: _Company
{
public override List<Personel> GetPersonel()
{
throw new NotImplementedException();
}
public override List<Prim> GetPrim()
{
throw new NotImplementedException();
}
public override List<Finans> GetFinans()
{
throw new NotImplementedException();
}
}
public class Radyoloji : _Radyoloji
{
public override List<string> GetRadyoloji()
{
throw new NotImplementedException();
}
}
public class Satis : _Satis
{
public override List<string> GetSatis()
{
throw new NotImplementedException();
}
}
public class Muayene : _Muayene
{
public override List<string> GetMuayene()
{
throw new NotImplementedException();
}
}
public class GenoTipController
{
public _Company GenerateCompany(DataModelType modeltype)
{
_Company company = null;
switch (modeltype)
{
case DataModelType.Radyoloji:
break;
case DataModelType.Satis:
break;
case DataModelType.Muayene:
break;
case DataModelType.Company:
company = new Company();
break;
default:
break;
}
return company;
}
public _Muayene GenerateMuayene(DataModelType modeltype)
{
_Muayene muayene = null;
switch (modeltype)
{
case DataModelType.Radyoloji:
break;
case DataModelType.Satis:
break;
case DataModelType.Muayene:
muayene = new Muayene();
break;
case DataModelType.Company:
break;
default:
break;
}
return muayene;
}
public _Radyoloji GenerateRadyoloji(DataModelType modeltype)
{
_Radyoloji radyoloji = null;
switch (modeltype)
{
case DataModelType.Radyoloji:
radyoloji = new Radyoloji();
break;
case DataModelType.Satis:
break;
case DataModelType.Muayene:
break;
case DataModelType.Company:
break;
default:
break;
}
return radyoloji;
}
}
public class CompanyView
{
public static List<Personel> GetPersonel()
{
GenoTipController controller = new GenoTipController();
_Company company = controller.GenerateCompany(DataModelType.Company);
return company.GetPersonel();
}
}
public enum DataModelType
{
Radyoloji,
Satis,
Muayene,
Company
}
}
если использовать метод oleksiy.t:
public class GenoTipController
{
public object CreateByEnum(DataModelType modeltype)
{
string enumText = modeltype.ToString(); // will return for example "Company"
Type classType = Type.GetType(enumText); // the Type for Company class
object t = Activator.CreateInstance(classType); // create an instance of Company class
return t;
}
}
public class CompanyView
{
public static List<Personel> GetPersonel()
{
GenoTipController controller = new GenoTipController();
_Company company = controller.CreateByEnum(DataModelType.Company);
return company.GetPersonel();
}
}
public enum DataModelType
{
Radyoloji,
Satis,
Muayene,
Company
}
альтернативный текст http://i40.tinypic.com/14sdqpw.png
я сталкиваюсь с ошибкой: мне нравится метод oleksiy, но как я могу его использовать?