Skip to content

Commit d089d65

Browse files
authored
Merge pull request #84 from simplic/AssemblyException
Add exception for load assemblies.
2 parents 1e1a4ec + dc96001 commit d089d65

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

WpfDesign.Designer/Project/PropertyGrid/Editors/FlatCollectionEditor.xaml.cs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,20 @@ public void LoadItemsCombobox()
116116

117117
private IEnumerable<Type> GetInheritedClasses(Type type)
118118
{
119-
return AppDomain.CurrentDomain.GetAssemblies().Where(x => !x.IsDynamic).SelectMany(x => x.GetTypes().Where(y => y.IsClass && !y.IsAbstract && y.IsSubclassOf(type)));
119+
return AppDomain.CurrentDomain.GetAssemblies().Where(x => !x.IsDynamic).SelectMany(x => GetLoadableTypes(x).Where(y => y.IsClass && !y.IsAbstract && y.IsSubclassOf(type)));
120+
}
121+
122+
private IEnumerable<Type> GetLoadableTypes(Assembly assembly)
123+
{
124+
if (assembly == null) throw new ArgumentNullException("assembly");
125+
try
126+
{
127+
return assembly.GetTypes();
128+
}
129+
catch (ReflectionTypeLoadException e)
130+
{
131+
return e.Types.Where(t => t != null);
132+
}
120133
}
121134

122135
private void OnAddItemClicked(object sender, RoutedEventArgs e)

0 commit comments

Comments
 (0)