I'm trying to get all the interfaces (they are all open generic) derived from IService that a Random class implements. I'm sure that at least one interface Random is implementing inherits from IService<,> but no items is being added to the iServiceTypeInterfaces list.
I have the following code:
var iServiceTypeInterfaces = new List<Type>();
Type iServiceGeneric = typeof(IService<,>);
foreach(Type i of Random.GetInterfaces())
{
Type currentGenericType = i.GetGenericTypeDefinition();
bool isAssignable = currentGenericType.IsAssignableTo(iServiceGeneric);
if(isAssignable)
{
iServiceTypeInterfaces.Add(i);
}
}
public interface IService<T, TSearcheable>
where T : class
where TSearcheable : class
{
Task<IEnumerable<T>> GetAll(TSearcheable searchObj);
Task<T> GetById(Guid id);
Task Create(T entity);
Task Update(T entity);
Task Delete(T entity);
}
public interface IProjectService<T, TSearcheable> : IService<T, TSearcheable>
where T : class
where TSearcheable : class
{
Task<List<Technology>> GetTechs(List<Guid> ids);
}