refactor(ui): 重命名页面行为接口并更新依赖包版本

- 将 IPageBehavior 接口重命名为 IUiPageBehavior 并更新相关引用
- 将 CanvasItemPageBehavior 类重命名为 CanvasItemUiPageBehavior
- 更新 Newtonsoft.Json 从 13.0.3 到 13.0.4
- 更新 NUnit3TestAdapter 从 6.0.1 到 6.1.0
- 更新 Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing 从 1.1.2 到 1.3
- 为多个项目添加 Meziantou.Analyzer 和 Meziantou.Polyfill 包引用
This commit is contained in:
GeWuYou 2026-01-15 21:33:51 +08:00
parent d1b4ef1971
commit ee3a087e35
15 changed files with 61 additions and 13 deletions

View File

@ -15,4 +15,14 @@
<ItemGroup> <ItemGroup>
<Using Include="GFramework.Core.Abstractions"/> <Using Include="GFramework.Core.Abstractions"/>
</ItemGroup> </ItemGroup>
<ItemGroup>
<PackageReference Update="Meziantou.Analyzer" Version="2.0.278">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Update="Meziantou.Polyfill" Version="1.0.84">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project> </Project>

View File

@ -8,7 +8,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1"/> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1"/>
<PackageReference Include="NUnit" Version="4.4.0"/> <PackageReference Include="NUnit" Version="4.4.0"/>
<PackageReference Include="NUnit3TestAdapter" Version="6.0.1"/> <PackageReference Include="NUnit3TestAdapter" Version="6.1.0"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -17,4 +17,14 @@
<ItemGroup> <ItemGroup>
<Using Include="GFramework.Game.Abstractions"/> <Using Include="GFramework.Game.Abstractions"/>
</ItemGroup> </ItemGroup>
<ItemGroup>
<PackageReference Update="Meziantou.Analyzer" Version="2.0.278">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Update="Meziantou.Polyfill" Version="1.0.84">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project> </Project>

View File

@ -12,5 +12,5 @@ public interface IUiFactory : IContextUtility
/// </summary> /// </summary>
/// <param name="uiKey">UI标识键用于确定要创建的具体UI页面类型</param> /// <param name="uiKey">UI标识键用于确定要创建的具体UI页面类型</param>
/// <returns>创建的UI页面实例实现IUiPage接口</returns> /// <returns>创建的UI页面实例实现IUiPage接口</returns>
IPageBehavior Create(string uiKey); IUiPageBehavior Create(string uiKey);
} }

View File

@ -1,9 +1,9 @@
namespace GFramework.Game.Abstractions.ui; namespace GFramework.Game.Abstractions.ui;
/// <summary> /// <summary>
/// UI页面接口定义了UI页面的生命周期方法 /// UI页面行为接口定义了UI页面的生命周期方法和状态管理
/// </summary> /// </summary>
public interface IPageBehavior public interface IUiPageBehavior
{ {
/// <summary> /// <summary>
/// 获取页面视图对象 /// 获取页面视图对象

View File

@ -9,5 +9,5 @@ public interface IUiPageBehaviorProvider
/// 获取页面行为实例 /// 获取页面行为实例
/// </summary> /// </summary>
/// <returns>页面行为接口实例</returns> /// <returns>页面行为接口实例</returns>
IPageBehavior GetPage(); IUiPageBehavior GetPage();
} }

View File

@ -9,11 +9,11 @@ public interface IUiRoot
/// 向UI根节点添加子页面 /// 向UI根节点添加子页面
/// </summary> /// </summary>
/// <param name="child">要添加的UI页面子节点</param> /// <param name="child">要添加的UI页面子节点</param>
void AddUiPage(IPageBehavior child); void AddUiPage(IUiPageBehavior child);
/// <summary> /// <summary>
/// 从UI根节点移除子页面 /// 从UI根节点移除子页面
/// </summary> /// </summary>
/// <param name="child">要移除的UI页面子节点</param> /// <param name="child">要移除的UI页面子节点</param>
void RemoveUiPage(IPageBehavior child); void RemoveUiPage(IUiPageBehavior child);
} }

View File

@ -11,6 +11,6 @@
<ProjectReference Include="..\$(AssemblyName).Abstractions\$(AssemblyName).Abstractions.csproj"/> <ProjectReference Include="..\$(AssemblyName).Abstractions\$(AssemblyName).Abstractions.csproj"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.3"/> <PackageReference Include="Newtonsoft.Json" Version="13.0.4"/>
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -22,7 +22,7 @@ public abstract class UiRouterBase : AbstractSystem, IUiRouter
/// <summary> /// <summary>
/// 页面栈用于管理UI页面的显示顺序 /// 页面栈用于管理UI页面的显示顺序
/// </summary> /// </summary>
private readonly Stack<IPageBehavior> _stack = new(); private readonly Stack<IUiPageBehavior> _stack = new();
/// <summary> /// <summary>
/// UI工厂实例用于创建UI相关的对象 /// UI工厂实例用于创建UI相关的对象

View File

@ -18,4 +18,14 @@
<ItemGroup> <ItemGroup>
<Folder Include="logging\"/> <Folder Include="logging\"/>
</ItemGroup> </ItemGroup>
<ItemGroup>
<PackageReference Update="Meziantou.Analyzer" Version="2.0.278">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Update="Meziantou.Polyfill" Version="1.0.84">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project> </Project>

View File

@ -9,7 +9,7 @@ namespace GFramework.Godot.ui;
/// 支持所有继承自 CanvasItem 的节点 /// 支持所有继承自 CanvasItem 的节点
/// </summary> /// </summary>
/// <typeparam name="T">CanvasItem 类型的视图节点</typeparam> /// <typeparam name="T">CanvasItem 类型的视图节点</typeparam>
public class CanvasItemPageBehavior<T>(T owner) : IPageBehavior public class CanvasItemUiPageBehavior<T>(T owner) : IUiPageBehavior
where T : CanvasItem where T : CanvasItem
{ {
private readonly IUiPage? _page = owner as IUiPage; private readonly IUiPage? _page = owner as IUiPage;

View File

@ -22,7 +22,7 @@ public class GodotUiFactory : AbstractContextUtility, IUiFactory
/// <param name="uiKey">UI资源的唯一标识键</param> /// <param name="uiKey">UI资源的唯一标识键</param>
/// <returns>实现IUiPage接口的UI页面实例</returns> /// <returns>实现IUiPage接口的UI页面实例</returns>
/// <exception cref="InvalidCastException">当UI场景没有继承IUiPage接口时抛出</exception> /// <exception cref="InvalidCastException">当UI场景没有继承IUiPage接口时抛出</exception>
public IPageBehavior Create(string uiKey) public IUiPageBehavior Create(string uiKey)
{ {
// 从注册表中获取对应的场景资源 // 从注册表中获取对应的场景资源
var scene = _registry.Get(uiKey); var scene = _registry.Get(uiKey);

View File

@ -17,4 +17,14 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\GFramework.Core.Abstractions\GFramework.Core.Abstractions.csproj" PrivateAssets="all"/> <ProjectReference Include="..\GFramework.Core.Abstractions\GFramework.Core.Abstractions.csproj" PrivateAssets="all"/>
</ItemGroup> </ItemGroup>
<ItemGroup>
<PackageReference Update="Meziantou.Analyzer" Version="2.0.278">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Update="Meziantou.Polyfill" Version="1.0.84">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project> </Project>

View File

@ -22,6 +22,14 @@
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.14.0" PrivateAssets="all"/> <PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.14.0" PrivateAssets="all"/>
<PackageReference Update="Meziantou.Analyzer" Version="2.0.278">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Update="Meziantou.Polyfill" Version="1.0.84">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<AdditionalFiles Include="AnalyzerReleases.Shipped.md"/> <AdditionalFiles Include="AnalyzerReleases.Shipped.md"/>

View File

@ -12,10 +12,10 @@
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.14.0"/> <PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.14.0"/>
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="4.14.0"/> <PackageReference Include="Microsoft.CodeAnalysis.Common" Version="4.14.0"/>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.14.0"/> <PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.14.0"/>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing" Version="1.1.2"/> <PackageReference Include="Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing" Version="1.1.3"/>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1"/> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1"/>
<PackageReference Include="NUnit" Version="4.4.0"/> <PackageReference Include="NUnit" Version="4.4.0"/>
<PackageReference Include="NUnit3TestAdapter" Version="6.0.1"/> <PackageReference Include="NUnit3TestAdapter" Version="6.1.0"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>