in src/React.Core/TinyIoC/TinyIoC.cs [4145:4171]
private static bool IsValidAssignment(Type registerType, Type registerImplementation)
{
if (!registerType.IsGenericTypeDefinition())
{
if (!registerType.IsAssignableFrom(registerImplementation))
return false;
}
else
{
if (registerType.IsInterface())
{
#if (PORTABLE || NETSTANDARD1_0 || NETSTANDARD1_1 || NETSTANDARD1_2 || NETSTANDARD1_3 || NETSTANDARD1_4 || NETSTANDARD1_5 || NETSTANDARD1_6)
if (!registerImplementation.GetInterfaces().Any(t => t.Name == registerType.Name))
return false;
#else
if (!registerImplementation.FindInterfaces((t, o) => t.Name == registerType.Name, null).Any())
return false;
#endif
}
else if (registerType.IsAbstract() && registerImplementation.BaseType() != registerType)
{
return false;
}
}
//#endif
return true;
}