Когда мы пытаемся выполнить преобразование класса Generic Type в формальную реализацию, это приводит к ошибке приведения.
В приведенном ниже коде вы можете видеть, что у меня есть FormalClass, который является реализацией GenericTypeClass.Когда я пытаюсь выполнить приведение из GenericTypeClass к FormalClass, он выдает следующую ошибку:
" [System.InvalidCastException: Невозможно привести объект типа 'GenericTypeClass`1 [TestType]' к типу 'FormalClass »Automapper?JSON сериализация?Другое?
Ниже приведен пример dotnetfiddle (https://dotnetfiddle.net/LLg0vp):
using System;
public class Program
{
public static void Main()
{
var a = new GenericTypeClass<TestType>();
var b = a as FormalClass;
if (b == null)
Console.WriteLine("'a as Formal' Is NULL");
try
{
var c = (FormalClass)a;
}
catch (Exception ex)
{
Console.WriteLine("'(FormalClass)a' gives this error: " + ex.Message);
}
}
}
public class FormalClass : GenericTypeClass<TestType>
{
}
public class GenericTypeClass<T>
where T : class, IType
{
}
public class TestType : IType
{
}
public interface IType
{
}