Changeset 7615 for branches/HeuristicLab.TimeSeries/HeuristicLab.PluginInfrastructure/3.3/LightweightApplicationManager.cs
- Timestamp:
- 03/15/12 09:11:17 (13 years ago)
- Location:
- branches/HeuristicLab.TimeSeries
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.TimeSeries
-
branches/HeuristicLab.TimeSeries/HeuristicLab.PluginInfrastructure/3.3/LightweightApplicationManager.cs
r7268 r7615 75 75 foreach (Type t in GetTypes(type)) { 76 76 object instance = null; 77 try { instance = Activator.CreateInstance(t); } 78 catch { } 77 try { instance = Activator.CreateInstance(t); } catch { } 79 78 if (instance != null) instances.Add(instance); 80 79 } … … 126 125 var assemblyTypes = assembly.GetTypes(); 127 126 128 var buildTypes = from t in assemblyTypes 127 var buildTypes = from t in assembly.GetTypes() 128 where CheckTypeCompatibility(type, t) 129 129 where !IsNonDiscoverableType(t) 130 where CheckTypeCompatibility(type, t)131 where onlyInstantiable == false ||(!t.IsAbstract && !t.IsInterface && !t.HasElementType)130 where onlyInstantiable == false || 131 (!t.IsAbstract && !t.IsInterface && !t.HasElementType) 132 132 select BuildType(t, type); 133 133 … … 135 135 where includeGenericTypeDefinitions || !t.IsGenericTypeDefinition 136 136 select t; 137 } 138 catch (TypeLoadException) { 137 } catch (TypeLoadException) { 139 138 return Enumerable.Empty<Type>(); 140 } 141 catch (ReflectionTypeLoadException) { 139 } catch (ReflectionTypeLoadException) { 142 140 return Enumerable.Empty<Type>(); 143 141 } … … 152 150 return true; 153 151 if (type.IsGenericType && other.IsGenericType) { 152 var otherGenericArguments = other.GetGenericArguments(); 153 var typeGenericArguments = type.GetGenericArguments(); 154 155 //check type arguments count 156 if (otherGenericArguments.Length != typeGenericArguments.Length) 157 return false; 158 159 //check type arguments & constraints 160 int i = 0; 161 foreach (var genericArgument in typeGenericArguments) { 162 if (otherGenericArguments[i].IsGenericParameter) { 163 foreach (var constraint in otherGenericArguments[i].GetGenericParameterConstraints()) 164 if (!constraint.IsAssignableFrom(genericArgument)) return false; 165 } else if (genericArgument != otherGenericArguments[i]) return false; 166 i++; 167 } 168 //check types 154 169 try { 155 if (type.IsAssignableFrom(other.GetGenericTypeDefinition().MakeGenericType(type.GetGenericArguments()))) 170 var otherGenericTypeDefinition = other.GetGenericTypeDefinition(); 171 if (type.IsAssignableFrom(otherGenericTypeDefinition.MakeGenericType(typeGenericArguments))) 156 172 return true; 157 } 158 catch (Exception) { } 173 } catch (Exception) { } 159 174 } 160 175 return false;
Note: See TracChangeset
for help on using the changeset viewer.