Blazor:在 Razor 文件中定义命名空间
Blazor: Define namespace in Razor File
问题:有没有办法在 Blazor 的 .razor 文件中定义命名空间。
问题解释:Blazor 中的 Razor 文件没有定义命名空间(只有 class 后面的代码有一个,它应该与项目中的 .razor 文件位置匹配)。这导致了 GitHub 上的问题,它限制了我提供具有少量命名空间的 Razor 组件库。
Github 问题:这源于我不认同的微软理念:文件名不区分大小写。我有一个文件夹,假设它被命名为 'FooBar'。在我的项目中,我将其重命名为 'Foobar'。 Windows 没有正确重命名,或者在 Github 中签入时未将其视为更改。结果,我的命名空间 'Foobar' 后面的代码不再匹配我的 /razor 文件 'FooBar' 的命名空间,导致 Github 上的构建错误(它在我的电脑上运行良好)。如果我能够在 .razor 文件中指定命名空间,就不会发生这种情况。
组件库问题:我正在制作一个我想在 NuGet 上提供的组件库。我想将所有组件保存在单独的文件夹中(假设是为了单一职责)。当我现在想要包含这个组件库时,_imports 文件将为库中的每个文件夹都有一个 @include
,同样是因为我无法将文件夹与组件所在的命名空间分开。我想说 @include Foobar
而不是 @include Foobar.Checkbox
、@include Foobar.Radiobutton
等
那么有什么解决办法吗?
好的,我没有找到这个谷歌搜索(虽然它可能在某个地方)但我尝试了以下方法:
在后面的代码中,将命名空间 Foobar.Checkbox 重命名为 Foobar
在剃须刀文件中添加 @namespace Foobar
是的,就是这么简单facepalm
举个例子。您的 Blazor 组件名称是 Box,在文件夹 Boxes 中。
你的命名空间应该是 Boxs - 对吧?
这样做:
在名称为 Box.razor.cs 的 Boxs 文件夹中添加一个 class。这个class就是Box的C#代码,然后加上这个class:
using Microsoft.AspNetCore.Components;
namespace Boxes;
public partial class Box: ComponentBase
{
// @code ...
}
为简单起见,将 Boxs 命名空间添加到 _imports.razor。
问题:有没有办法在 Blazor 的 .razor 文件中定义命名空间。
问题解释:Blazor 中的 Razor 文件没有定义命名空间(只有 class 后面的代码有一个,它应该与项目中的 .razor 文件位置匹配)。这导致了 GitHub 上的问题,它限制了我提供具有少量命名空间的 Razor 组件库。
Github 问题:这源于我不认同的微软理念:文件名不区分大小写。我有一个文件夹,假设它被命名为 'FooBar'。在我的项目中,我将其重命名为 'Foobar'。 Windows 没有正确重命名,或者在 Github 中签入时未将其视为更改。结果,我的命名空间 'Foobar' 后面的代码不再匹配我的 /razor 文件 'FooBar' 的命名空间,导致 Github 上的构建错误(它在我的电脑上运行良好)。如果我能够在 .razor 文件中指定命名空间,就不会发生这种情况。
组件库问题:我正在制作一个我想在 NuGet 上提供的组件库。我想将所有组件保存在单独的文件夹中(假设是为了单一职责)。当我现在想要包含这个组件库时,_imports 文件将为库中的每个文件夹都有一个 @include
,同样是因为我无法将文件夹与组件所在的命名空间分开。我想说 @include Foobar
而不是 @include Foobar.Checkbox
、@include Foobar.Radiobutton
等
那么有什么解决办法吗?
好的,我没有找到这个谷歌搜索(虽然它可能在某个地方)但我尝试了以下方法:
在后面的代码中,将命名空间 Foobar.Checkbox 重命名为 Foobar
在剃须刀文件中添加 @namespace Foobar
是的,就是这么简单facepalm
举个例子。您的 Blazor 组件名称是 Box,在文件夹 Boxes 中。
你的命名空间应该是 Boxs - 对吧?
这样做: 在名称为 Box.razor.cs 的 Boxs 文件夹中添加一个 class。这个class就是Box的C#代码,然后加上这个class:
using Microsoft.AspNetCore.Components;
namespace Boxes;
public partial class Box: ComponentBase
{
// @code ...
}
为简单起见,将 Boxs 命名空间添加到 _imports.razor。