首页 > 数据库 > 数据库开发技术 > CoreFlex框架发布 0.1.1
CoreFlex是一个支持.NET 6,.NET 7,.NET 8的快速开发框架,也提供MasaFramework相关框架的集成提供更多功能模块,
集成了一些常用的功能模块,可以快速开发企业级应用,提供Blazor的一些JS操作工具库。
ChatGpt客户端案例模块Core Flex的核心设计,Core Flex其他模块都是基于Core Flex的核心设计来实现的。 Core Flex模块提供了一些基础的功能,包括: - 模块化 - 自动依赖注入
NuGet包dotnet add package CoreFlex.Module --version 0.1.1
CoreFlex.Razor.JsInterop,那么模块名称则是CoreFlexRazorJsInteropModule,这样的好处就是可以通过模块名称来查找对应的模块,而不是通过文件夹名称来查找模块,这样可以避免文件夹名称和模块名称不一致的问题。public class CoreFlexRazorJsInteropModule : CoreFlexModule
{
public override void ConfigureServices(CoreFlexServiceContext services)
{
}
public override void OnApplicationShutdown(CoreFlexBuilder app)
{
}
}
创建的模块必须继承CoreFlexModule,然后实现ConfigureServices和OnApplicationShutdown方法,这两个方法是模块的生命周期方法,ConfigureServices方法在模块加载时调用,OnApplicationShutdown方法在模块构建完成调用。
模块中也提供了Async结束的异步回调,以便于在模块加载完成后,可以执行一些异步操作,比如加载一些配置文件等。
当然,如果你的模块需要使用其他的模块,你可以在模块类的上面添加特性[DependsOn(typeof(CoreFlexRazorModule))],CoreFlexRazorModule则是你要依赖的模块,当然它也支持多个模块的依赖;
这样在加载模块时,会先加载CoreFlexRazorModule模块,
但是如果没有设置特定模块执行顺序,依赖模块将在当前模块的后面执行。
[DependsOn(typeof(CoreFlexRazorModule))]
public class CoreFlexRazorJsInteropModule : CoreFlexModule
dotnet add package CoreFlex.Razor.JsInterop --version 0.1.1
提供系统常用的JS互操作的封装,便于使用。
添加CoreFlexRazorJsInteropModule模块依赖
CookieJsInterop
提供:
GetAllCookiesAsync 获取所有CookieAddCookieAsync 添加Cookie`LocalStorageJsInterop
提供:
SetLocalStorageAsync 设置LocalStorage的值GetLocalStorageAsync 获取LocalStorage的值RemoveLocalStorageAsync 移除LocalStorage的值RemovesLocalStorageAsync 批量删除Key的LocalStorageClearLocalStorageAsync 清空LocalStorage的值IsLocalStorageSupportedAsync 判断浏览器是否支持LocalStorageGetLocalStorageKeysAsync 获取LocalStorage的所有KeySessionStorageJsInterop
提供:
SetSessionStorageAsync 设置SessionStorage的值GetSessionStorageAsync 获取SessionStorage的值RemoveSessionStorageAsync 移除SessionStorage的值RemovesSessionStorageAsync 批量删除Key的SessionStorageClearSessionStorageAsync 清空SessionStorage的值GetSessionStorageLengthAsync 获取 sessionStorage 中值的数量ContainKeyAsync 判断 sessionStorage 中是否含有某个键名WindowJsInterop
提供以下功能:
CreateBlobURLAsync: 使用 blob 创建 Blob UrlCreateBlobURLFromUint8ArrayAsync: 使用 byte[] 创建一个 Blob 对象URLCreateBlobURLFromStringAsync: 使用 Base64 创建一个 Blob 对象的URLRevokeUrlAsync: 释放 Blob 对象的 URLRevokeUrlsAsync: 批量释放 Blob 对象的 URLGetScrollPositionAsync: 获取滚动条位置SetScrollPositionAsync: 修改滚动条位置GetScrollHeightAsync: 获取滚动条高度ScrollToBottomAsync 滚动到底部ScrollToTopAsync 滚动到顶部CopyToClipboardAsync 复制到剪贴板PlayTextAsync 播放文本PauseSpeechAsync 暂停播放语音ResumeSpeechAsync 继续语音播放StopSpeechAsync 停止语音播放EnterFullscreenAsync 进入全屏模式ExitFullscreenAsync 退出全屏模式IsFullscreenAsync 判断当前是否处于全屏模式ToggleFullscreenAsync 切换全屏模式PickContactAsync 使用 Contact Picker API 选择联系人本地事件总线通过Channel实现本地事件总线
添加CoreFlexEventModule模块依赖
NuGet包<PackageReference Include="CoreFlex.Module" Version="模块版本" />
public class TestEventHandler : ILoadEventHandler<TestEto>
{
public Task HandleAsync(TestEto eto)
{
throw new NotImplementedException();
}
public Task ExceptionHandling(Exception exception, TestEto eto)
{
throw new NotImplementedException();
}
}
public class TestEto
{
public string Value { get; set; }
}
// 通过构造得到`ILoadEventBus`
await loadEvent.PushAsync(new TestEto(){
Value="test"
})
原文作者:token的技术分享;如有侵权,请联系管理员删除。