Skip to content

Commit

Permalink
移除扩展方法并更新Pek.Common包版本
Browse files Browse the repository at this point in the history
删除了 `ExpressionExtension.cs` 文件中的所有代码,包括多个扩展方法和内部类 `ReplaceExpressionVisitor`。
删除了 `ServiceCollectionExtensions.cs` 文件中的多个扩展方法,这些方法用于从 `IServiceProvider` 获取服务对象。
在 `Pek.AspNetCore.csproj` 文件中,将 `Pek.Common` 包的版本从 `4.0.2024.1206-beta0942` 更新到 `4.0.2024.1206-beta1005`。
  • Loading branch information
猿人易 committed Dec 6, 2024
1 parent 8e01171 commit 5e7f3a8
Show file tree
Hide file tree
Showing 3 changed files with 1 addition and 250 deletions.
172 changes: 0 additions & 172 deletions Pek.AspNetCore/Extensions/ExpressionExtension.cs

This file was deleted.

77 changes: 0 additions & 77 deletions Pek.AspNetCore/Infrastructure/ServiceCollectionExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,81 +48,4 @@ public static void AddAllSingletons(this IServiceCollection services)

ObjectContainer.Provider = services.BuildServiceProvider();
}

/// <summary>
/// 获取指定类型的服务对象
/// </summary>
/// <typeparam name="T">服务类型</typeparam>
/// <param name="provider">服务提供者</param>
/// <returns></returns>
public static T? GetPekService<T>(this IServiceProvider provider)
{
if (provider == null) return default;

//// 服务类是否当前类的基类
//if (provider.GetType().As<T>()) return (T)provider;

return (T?)provider.GetService(typeof(T));
}

/// <summary>获取必要的服务,不存在时抛出异常</summary>
/// <param name="provider">服务提供者</param>
/// <param name="serviceType">服务类型</param>
/// <returns></returns>
public static Object GetPekRequiredService(this IServiceProvider provider, Type serviceType)
{
if (provider == null) throw new ArgumentNullException(nameof(provider));
if (serviceType == null) throw new ArgumentNullException(nameof(serviceType));

return provider.GetService(serviceType) ?? throw new InvalidOperationException($"Unregistered type {serviceType.FullName}");
}

/// <summary>获取必要的服务,不存在时抛出异常</summary>
/// <typeparam name="T">服务类型</typeparam>
/// <param name="provider">服务提供者</param>
/// <returns></returns>
public static T GetPekRequiredService<T>(this IServiceProvider provider) => provider == null ? throw new ArgumentNullException(nameof(provider)) : (T)provider.GetPekRequiredService(typeof(T));

/// <summary>获取一批服务</summary>
/// <typeparam name="T">服务类型</typeparam>
/// <param name="provider">服务提供者</param>
/// <returns></returns>
public static IEnumerable<T> GetPekServices<T>(this IServiceProvider provider) => provider.GetPekServices(typeof(T)).Cast<T>();

/// <summary>获取一批服务</summary>
/// <param name="provider">服务提供者</param>
/// <param name="serviceType">服务类型</param>
/// <returns></returns>
public static IEnumerable<Object> GetPekServices(this IServiceProvider provider, Type serviceType)
{
//var sp = provider as ServiceProvider;
//if (sp == null && provider is MyServiceScope scope) sp = scope.MyServiceProvider as ServiceProvider;
//var sp = provider.GetService<ServiceProvider>();
//if (sp != null && sp.Container is ObjectContainer ioc)
var ioc = GetPekService<ObjectContainer>(provider);
if (ioc != null)
{
//var list = new List<Object>();
//foreach (var item in ioc.Services)
//{
// if (item.ServiceType == serviceType) list.Add(ioc.Resolve(item, provider));
//}
for (var i = ioc.Services.Count - 1; i >= 0; i--)
{
var item = ioc.Services[i];
if (item.ServiceType == serviceType) yield return ioc.Resolve(item, provider);
}
//return list;
}
else
{
var serviceType2 = typeof(IEnumerable<>)!.MakeGenericType(serviceType);
var enums = (IEnumerable<Object>)provider.GetPekRequiredService(serviceType2);
foreach (var item in enums)
{
yield return item;
}
}
}

}
2 changes: 1 addition & 1 deletion Pek.AspNetCore/Pek.AspNetCore.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Pek.Common" Version="4.0.2024.1206-beta0942" />
<PackageReference Include="Pek.Common" Version="4.0.2024.1206-beta1005" />
</ItemGroup>

<ItemGroup>
Expand Down

0 comments on commit 5e7f3a8

Please sign in to comment.