I have multiple projects in my MVC solution.In my web project ImageController has the update,delete and create methods for all the Image classes in my project. At the moment I'm using switch options to access relevant services from service layer (another class library project).
namespace MySolution.Web.Controllers
{
public class ImageController : Controller
{
public void UpdateMainImage( string imageClassName, string name, long id)
{
using (ServiceFactory factory = new ServiceFactory())
{
switch (imageClassName)
{
case "CategoryImage": factory.CategoryImage.UpdateDisplayImage(name, id);
break;
case "ItemImage": factory.ItemImage..UpdateDisplayImage(name, id));
break;
//other case statements
}
}
// Delete Image Method
public void DeleteImage( string imageClassName, long id)
{
using (ServiceFactory factory = new ServiceFactory())
{
switch (imageClassName)
{
case "CategoryImage": factory.CategoryImage.DeleteImage( id);
break;
case "ItemImage": factory.ItemImage..DeleteImage(id));
break;
//other case statements
}
}
}
Can I select the relevant Imageservice class dynamically? The imageClassName variable contains the Image service class name.
factory.imageClassName.DeleteImage(name, id);
Is there a way to use a string variable to replace the Class name?