// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace Microsoft.MixedReality.Toolkit
{
public static class AssemblyExtensions
{
///
/// Assembly.GetTypes() can throw in some cases. This extension will catch that exception and return only the types which were successfully loaded from the assembly.
///
public static IEnumerable GetLoadableTypes(this Assembly @this)
{
try
{
return @this.GetTypes();
}
catch (ReflectionTypeLoadException e)
{
return e.Types.Where(t => t != null);
}
}
}
}