using FurnitureAssemblyContracts.StoragesContracts; using FurnitureAssemblyFileImplement; using System.Reflection; namespace FurnitureAssemFileImplement.Implements { public class BackUpInfo : IBackUpInfo { public List? GetList() where T : class, new() { DataFileSingleton dataFileSingleton = DataFileSingleton.GetInstance(); return (List?) dataFileSingleton.GetType().GetProperties() .FirstOrDefault(x => x.PropertyType.IsGenericType && x.PropertyType.GetGenericArguments()[0] == typeof(T))? .GetValue(dataFileSingleton); } public Type? GetTypeByModelInterface(string modelInterfaceName) { var assembly = typeof(BackUpInfo).Assembly; var types = assembly.GetTypes(); foreach (var type in types) { if (type.IsClass && type.GetInterface(modelInterfaceName) != null) { return type; } } return null; } } }