Skip to content
  • Home
  • Python教學
  • 科技新聞資訊
  • 網站開發教學
Copyright 網絡設計教學 2025
Theme by ThemeinProgress
Proudly powered by WordPress
  • Home
  • Python教學
  • 科技新聞資訊
  • 網站開發教學
網絡設計教學網絡設計教學,網站網頁教學,軟體使用教學
  • You are here :
  • Home
  • 科技新聞資訊
  • .NET 社區工具包8.2 發布,帶來程式碼修復器、性能改進- 科技資訊
科技新聞資訊

.NET 社區工具包8.2 發布,帶來程式碼修復器、性能改進- 科技資訊

Jiking 2023-04-29 Article

.NET Community Toolkit 8.2 版正式發布!新版本包括在運行時和MVVM Toolkit 源碼生成器中的性能改進、新程式碼修復程式、新的用戶請求功能等內容。

.NET 社區工具包是一組適用於所有.NET 開發人員,且與不綁定UI 平台的幫助程式和API。該工具包由Microsoft 維護和發布,是.NET 基金會的一部分,它被多個微軟內部項目和應用程式使用,例如Microsoft Store。

.NET 社區工具包的所有庫最初都是Windows 社區工具包的一部分,但隨著時間的推移,僅針對.NET 且不特定於Windows 的API 數量不斷增加,微軟決定將.NET 相關的內容拆分到一個單獨的項目中,以便它們可以獨立發展,.NET Community Toolkit 由此誕生。

[RelayCommand] 的自定義屬性

新的8.2.0 版本的MVVM 工具包在使用 [RelayCommand] 時包括對自定義屬性的支援,利用原生的 field: 和 property: C# 語法來指示自定義屬性的目標。這樣一來,在使用 [RelayCommand] 生成MVVM 命令時,可以完全控制所有生成成員的屬性。

比如


[RelayCommand]
[property: JsonIgnore]
private void DoWork()
{
    // Do some work here...
}

會生成如下成員,且生成的 DoWorkCommand 屬性具有指定的屬性


private RelayCommand? _doWorkCommand;

[JsonIgnore]
public IRelayCommand DoWorkCommand => _doWorkCommand ??= new RelayCommand(DoWork);

相關文檔

新的 [ObservableProperty] 更改hook

MVVM 中一個相對常見的場景是有一些“選擇的項目”可觀察屬性,例如當前選擇的用戶,或嵌套的視圖模型。當此屬性的值發生變化時,還必須對新舊實例進行一些調整。例如,設置一些“selected”屬性,或者訂閱事件。

以前,在這種情況下使用 [ObservableProperty] 並不理想,因為它沒有必要的基礎設施,來輕鬆注入此類邏輯以對設置的舊值和新值執行必要的狀態更改。

為了解決這個問題,從MVVM 工具包的8.2 版本開始,為所有 [ObservableProperty] 字段生成了兩個新的屬性更改hook。示例:


[ObservableProperty]
private DocumentViewModel _selectedDocument;

現在將生成如下程式碼:


public DocumentViewModel SelectedDocument
{
    get => _selectedDocument;
    set
    {
        if (!EqualityComparer<DocumentViewModel>.Default.Equals(_selectedDocument, value))
        {
            DocumentViewModel? oldValue = _selectedDocument;
            OnNameChanging(value);
            OnNameChanging(oldValue, value);
            OnPropertyChanging();
            _selectedDocument = value;
            OnNameChanged(value);
            OnNameChanged(oldValue, value);
            OnPropertyChanged();
        }
    }
}

partial void OnSelectedDocumentChanging(DocumentViewModel value);
partial void OnSelectedDocumentChanged(DocumentViewModel value);

partial void OnSelectedDocumentChanging(DocumentViewModel? oldValue, DocumentViewModel newValue);
partial void OnSelectedDocumentChanged(DocumentViewModel? oldValue, DocumentViewModel newValue);

注意正在生成的兩個新的“OnPropertyNameChanging”和“Changed”方法,這兩個提供了易於使用的hook,用於注入在每個屬性更改事件上觸發的程式碼,且可以修改正在設置的舊值和新值。

MVVM 工具包程式碼修復器

之前版本的MVVM Toolkit 添加了兩個新的診斷分析器,它們會在錯誤訪問標有 [ObservableProperty] 的字段,以及在使用聲明具有 [ObservableProperty] 和類似屬性的類型時產生警告。

在8.2 版本中,這兩個分析器還包括內置的程式碼修復器。只需將鼠標懸停在IntelliSense 燈泡上,選擇程式碼修復,該功能會自動應用所有更改,以使程式碼恢復到正確的狀態。支援批量修復:

MVVM 工具包源程式碼生成器優化

MVVM Toolkit 8.2 還對其源程式碼生成器進行了一些性能改進。這一次重點是優化增量管道,以最大限度地減少內存使用,並確保不會在並發執行中保持不必要的對象。

以下是一些用於改進這一點的PR:

  • 將剩餘的診斷移至分析器 ( #581 ):MVVM 工具包中的另外兩個診斷已移至診斷分析器,該分析器可以同時運行並在進程外運行。
  • 在分析器中儘早解析符號 ( #587 ):所有必要的分析器符號現在都在初始回調設置期間解析,加快了每個編譯實例中的回調執行。

其他改動和改進可在發佈公告中查閱。

#NET #社區工具包82 #發布帶來程式碼修復器性能改進 #科技資訊

You may also like

上海网信办对属地 46 款 App 收集使用个人信息情况开展专项检查 – 科技資訊

微信、QQ 全新 UOS 版本发布 – 科技資訊

代码层面探索前端性能 | 京东云技术团队 – 京东云开发者的个人空间 – 科技資訊

Gitee 推荐 | 为开发者打造的代码解释器 Octopus

DataSophon —— 云原生大数据管家

1-8 月我国规上互联网企业完成业务收入 9067 亿元 – 科技資訊

No related posts.

Tags: .NET Community Toolkit, .NET 社區工具包8.2 發布,帶來代碼修復器, NET, 性能改進, 發布帶來程式碼修復器性能改進, 社區工具包82, 科技資訊

近期文章

  • 如何在WooCommerce頁面中添加產品視頻
  • WooCommerce的電話驗證器和格式 – 演示和快速設置
  • 如何自定義WooCommerce中的訂單摘要
  • JavaScript多線程|改進WordPress -WooCommerce網站性能|沒有插件
  • 如何在WooCommerce(分步)中恢復廢棄的購物車
  • WooCommerce擴展開發 – 使產品價格可編輯
  • WooCommerce vs Thrivecart-它將最適合您的業務
  • 相撲會員資格| WooCommerce會員插件教程
  • 使用Elementor&WooCommerce建立功能齊全的在線商店|沒有付費插件

標籤雲

Dropshipping ecommerce JavaScript Joomla OSCHINA博客 python REBELLION Shopify Shopify 商店設置 Shopify 直銷 Woocommerce WordPress 代發貨 刀塔2 和 商店 商業 喬姆拉 在 如何創建 Shopify 商店 如何在 如何建立 Shopify 商店 如何開始代出貨 年 店舖教學 店鋪化 店鋪培訓 教學 獲獎產品 直銷 Shopify 直銷教程 科技資訊 程式碼 網路業務 網路賺錢 臉書廣告 與 行銷 詳解 購物 跨平台 運輸船 適合初學者的 Shopify 教學課程 適合初學者的直銷 電子商務

Copyright 網絡設計教學 2025