日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

CoreFlex框架发布 `0.1.1`

發(fā)布時(shí)間:2023/12/24 windows 36 coder
生活随笔 收集整理的這篇文章主要介紹了 CoreFlex框架发布 `0.1.1` 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

CoreFlex框架發(fā)布 0.1.1

框架描述

CoreFlex是一個(gè)支持.NET 6,.NET 7,.NET 8的快速開(kāi)發(fā)框架,也提供MasaFramework相關(guān)框架的集成提供更多功能模塊,
集成了一些常用的功能模塊,可以快速開(kāi)發(fā)企業(yè)級(jí)應(yīng)用,提供Blazor的一些JS操作工具庫(kù)。

實(shí)現(xiàn)目標(biāo)

Core Flex模塊

Core Flex的核心設(shè)計(jì),Core Flex其他模塊都是基于Core Flex的核心設(shè)計(jì)來(lái)實(shí)現(xiàn)的。
Core Flex模塊提供了一些基礎(chǔ)的功能,包括:
- 模塊化
- 自動(dòng)依賴注入

簡(jiǎn)單使用

  1. 安裝NuGet
dotnet add package CoreFlex.Module --version 0.1.1
  1. 添加對(duì)應(yīng)模塊方法,比如項(xiàng)目名CoreFlex.Razor.JsInterop,那么模塊名稱則是CoreFlexRazorJsInteropModule,這樣的好處就是可以通過(guò)模塊名稱來(lái)查找對(duì)應(yīng)的模塊,而不是通過(guò)文件夾名稱來(lái)查找模塊,這樣可以避免文件夾名稱和模塊名稱不一致的問(wèn)題。
public class CoreFlexRazorJsInteropModule : CoreFlexModule
{
    public override void ConfigureServices(CoreFlexServiceContext services)
    {
    }

    public override void OnApplicationShutdown(CoreFlexBuilder app)
    {
    }
}

創(chuàng)建的模塊必須繼承CoreFlexModule,然后實(shí)現(xiàn)ConfigureServicesOnApplicationShutdown方法,這兩個(gè)方法是模塊的生命周期方法,ConfigureServices方法在模塊加載時(shí)調(diào)用,OnApplicationShutdown方法在模塊構(gòu)建完成調(diào)用。
模塊中也提供了Async結(jié)束的異步回調(diào),以便于在模塊加載完成后,可以執(zhí)行一些異步操作,比如加載一些配置文件等。
當(dāng)然,如果你的模塊需要使用其他的模塊,你可以在模塊類的上面添加特性[DependsOn(typeof(CoreFlexRazorModule))],CoreFlexRazorModule則是你要依賴的模塊,當(dāng)然它也支持多個(gè)模塊的依賴;
這樣在加載模塊時(shí),會(huì)先加載CoreFlexRazorModule模塊,
但是如果沒(méi)有設(shè)置特定模塊執(zhí)行順序,依賴模塊將在當(dāng)前模塊的后面執(zhí)行。

[DependsOn(typeof(CoreFlexRazorModule))]
public class CoreFlexRazorJsInteropModule : CoreFlexModule

CoreFlex.Razor.JsInterop js工具庫(kù)

dotnet add package CoreFlex.Razor.JsInterop --version 0.1.1

提供系統(tǒng)常用的JS互操作的封裝,便于使用。

使用

添加CoreFlexRazorJsInteropModule模塊依賴

封裝Api

CookieJsInterop

提供:

  • GetAllCookiesAsync 獲取所有Cookie
  • AddCookieAsync 添加Cookie`

LocalStorageJsInterop

提供:

  • SetLocalStorageAsync 設(shè)置LocalStorage的值
  • GetLocalStorageAsync 獲取LocalStorage的值
  • RemoveLocalStorageAsync 移除LocalStorage的值
  • RemovesLocalStorageAsync 批量刪除Key的LocalStorage
  • ClearLocalStorageAsync 清空LocalStorage的值
  • IsLocalStorageSupportedAsync 判斷瀏覽器是否支持LocalStorage
  • GetLocalStorageKeysAsync 獲取LocalStorage的所有Key

SessionStorageJsInterop

提供:

  • SetSessionStorageAsync 設(shè)置SessionStorage的值
  • GetSessionStorageAsync 獲取SessionStorage的值
  • RemoveSessionStorageAsync 移除SessionStorage的值
  • RemovesSessionStorageAsync 批量刪除Key的SessionStorage
  • ClearSessionStorageAsync 清空SessionStorage的值
  • GetSessionStorageLengthAsync 獲取 sessionStorage 中值的數(shù)量
  • ContainKeyAsync 判斷 sessionStorage 中是否含有某個(gè)鍵名

WindowJsInterop

提供以下功能:

  • CreateBlobURLAsync: 使用 blob 創(chuàng)建 Blob Url
  • CreateBlobURLFromUint8ArrayAsync: 使用 byte[] 創(chuàng)建一個(gè) Blob 對(duì)象URL
  • CreateBlobURLFromStringAsync: 使用 Base64 創(chuàng)建一個(gè) Blob 對(duì)象的URL
  • RevokeUrlAsync: 釋放 Blob 對(duì)象的 URL
  • RevokeUrlsAsync: 批量釋放 Blob 對(duì)象的 URL
  • GetScrollPositionAsync: 獲取滾動(dòng)條位置
  • SetScrollPositionAsync: 修改滾動(dòng)條位置
  • GetScrollHeightAsync: 獲取滾動(dòng)條高度
  • ScrollToBottomAsync 滾動(dòng)到底部
  • ScrollToTopAsync 滾動(dòng)到頂部
  • CopyToClipboardAsync 復(fù)制到剪貼板
  • PlayTextAsync 播放文本
  • PauseSpeechAsync 暫停播放語(yǔ)音
  • ResumeSpeechAsync 繼續(xù)語(yǔ)音播放
  • StopSpeechAsync 停止語(yǔ)音播放
  • EnterFullscreenAsync 進(jìn)入全屏模式
  • ExitFullscreenAsync 退出全屏模式
  • IsFullscreenAsync 判斷當(dāng)前是否處于全屏模式
  • ToggleFullscreenAsync 切換全屏模式
  • PickContactAsync 使用 Contact Picker API 選擇聯(lián)系人

Core Flex 本地事件總線

本地事件總線通過(guò)Channel實(shí)現(xiàn)本地事件總線

添加CoreFlexEventModule模塊依賴

基本使用

  1. 安裝NuGet
<PackageReference Include="CoreFlex.Module" Version="模塊版本" />
  1. 添加處理程序
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; }
}
  1. 提交事件
// 通過(guò)構(gòu)造得到`ILoadEventBus`

await loadEvent.PushAsync(new TestEto(){
    Value="test"
})

總結(jié)

以上是生活随笔為你收集整理的CoreFlex框架发布 `0.1.1`的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。