项目中经常会用反射来实例化对象,根据参数不同实例化不同类型的实例;
1,定义接口
public interface IOtherAudit { ResultDTO GetResult(AuditUserDTO userDto);}
2,根据需要实现两套接口
public class Test1_AuditService : IOtherAudit{ public AuditResultDTO GetResult(AuditUserDTO userDto) { //TODO:业务逻辑代码 }}
public class Test2_AuditService : IOtherAudit{ public AuditResultDTO GetResult(AuditUserDTO userDto) { //TODO:业务逻辑代码 }}
3,反射得到相关实例
public AuditResultDTO GetResult(AuditUserDTO userDto) { //获取需要实例化的类型 Type type = Type.GetType("demo.test.Service." + userDto.typeName + "Service,demo.test.Service"); //实例化对象 IOtherAudit service = Activator.CreateInstance(type) as IOtherAudit; //获取审核结果 AuditResultDTO result = service.GetResult(userDto); return result; }