PIbd-23_Vrazhkin_S_A_Furnit.../FurnitureAssembly/FurnitureAssemblyFileImplement/Implements/BackUpInfo.cs

32 lines
1.1 KiB
C#
Raw Permalink Normal View History

2024-05-14 11:56:24 +04:00
using FurnitureAssemblyContracts.StoragesContracts;
using FurnitureAssemblyFileImplement;
using System.Reflection;
namespace FurnitureAssemFileImplement.Implements
{
public class BackUpInfo : IBackUpInfo
{
public List<T>? GetList<T>() where T : class, new()
{
DataFileSingleton dataFileSingleton = DataFileSingleton.GetInstance();
return (List<T>?) 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;
}
}
}