C# 基于变量值动态选择服务类

C# 基于变量值动态选择服务类,c#,asp.net-mvc,C#,Asp.net Mvc,我的MVC解决方案中有多个项目。在我的web项目中,ImageController为我的项目中的所有图像类提供了更新、删除和创建方法。目前,我正在使用交换机选项从服务层(另一个类库项目)访问相关服务 我可以动态选择相关的Imageservice类吗? imageClassName变量包含图像服务类名 factory.imageClassName.DeleteImage(name, id); 有没有办法使用字符串变量替换类名?您的类(CategoryImage、ItemImage等)是从单个接口

我的MVC解决方案中有多个项目。在我的web项目中,ImageController为我的项目中的所有图像类提供了更新、删除和创建方法。目前,我正在使用交换机选项从服务层(另一个类库项目)访问相关服务

我可以动态选择相关的Imageservice类吗? imageClassName变量包含图像服务类名

factory.imageClassName.DeleteImage(name, id);
有没有办法使用字符串变量替换类名?

您的类(
CategoryImage
ItemImage
等)是从单个接口继承的还是从抽象类继承的


您可以使用
Dictionary
Reflection
来实现这一点,但它既慢又复杂。我建议您使用switch语句。@JesseJames谢谢您的快速回复。是的,我很少看到使用反思的答案和帖子。虽然我必须编写更多的代码,但如果没有其他更好的解决方案,最好使用switch语句。
factory.imageClassName.DeleteImage(name, id);
private static IDictionary<string, ImageService> imageServices = new Dictionary<string, ImageService>
{
    { "CreateImage", new CreateImage() },
    { "ItemImage", new ItemImage() },
};

// somewhere below:
imageServices[imageClassName].UpdateDisplayImage(name, id);