Blazor - 私有组件

7
有没有办法创建一个仅在当前项目中使用的 Blazor 组件?
例如,假设有一个名为 Razor Class Library 的 ProjectOne 项目,其中包含两个组件:组件 ComponentA 和组件 ComponentB。组件 ComponentB 是组件 ComponentA 的子组件。 ProjectOne 项目结构如下: ProjectOne ---- Components ---------- ComponentA.razor ---------- ComponentB.razor 另外还有一个名为 ProjectTwo 的 Blazor 应用程序,该应用程序引用了 ProjectOne。当在 Razor 页面中调用组件 ComponentA 时,子组件 ComponentB 也是可见和可访问的。
有没有一种方法可以使组件 ComponentB 仅在使用它的 ProjectOne 项目中作为组件 ComponentA 的内部组件?
2个回答

5

看起来需要将子组件公开,而不是把它放在另一个项目中,所以我只是把它放在更深的命名空间中。

如果我想要公开的根组件在...

MyApp.Components.Widget

然后我将子组件放进去

MyApp.Components.Widget.Internal

在不需要另一个项目的情况下,实现与早期答案相似的结果,因为我们所能做的最好的就是将其模糊化,而不是将其设置为“内部”或“私有”。

0

可能不是最理想的方法,但可以创建另一个项目来支持您的公共项目,并且只被您的公共项目引用。您的消费项目仅引用您的公共项目。因此,对于您的示例,它将更改为...

  • ProjectTwo(应用程序项目)
    • ProjectOne(API组件项目)
      • ProjectOneInternalUse(API使用的支持项目)

(不幸的是,您仍然需要在ProjectTwo(应用程序项目)中引用“内部使用”项目,但至少它将在命名空间中标记为内部)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接