private void AddContoller(ControllerFeature feature, ResourceBoundle resourceBoundle, Type controllerType) { var controllerGenericType = reflactionHelper.FillGenericType(controllerType, resourceBoundle); var hasDrivenContoller = HasSameContoller(feature, controllerGenericType); if (!hasDrivenContoller) { feature.Controllers.Add(controllerGenericType.GetTypeInfo()); } }
public Type FillGenericType(Type genericType, ResourceBoundle resourceBoundle) { var genericArguments = GetGenericArguments(genericType, resourceBoundle).ToArray(); return(genericType.MakeGenericType(genericArguments)); }
private IEnumerable <Type> GetGenericArguments(Type genericType, ResourceBoundle resourceBoundle) { return(genericType.GetGenericArguments() .Select(ga => resourceBoundle.GetTypeOf(ga.Name))); }