private static IEnumerable<TypeInfo> GetAllBaseTypes(TypeInfo type)
		{
			if (type.BaseType != null)
			{
				foreach (var baseType in GetAllBaseTypes(type.BaseType.GetTypeInfo()))
				{
					yield return baseType;
				}
			}

			if (type.GetType() != typeof(object)) {
				yield return type;
			}
		}