开拓者-私有组件

时间:2020-04-02 21:22:32

标签: c# .net-core blazor-server-side

是否可以为正在使用的项目创建私有的Blazor组件?

例如,让我们看一下Razor类库ProjectOne,其中包含两个组件:组件ComponentA和组件ComponentB。组件ComponentB是组件ComponentA的子代。

ProjectOne结构:

ProjectOne

----组件

---------- ComponentA.razor

---------- ComponentB.razor

还有另一个项目是Blazor应用程序ProjectTwo。该项目中有一个对ProjectOne的引用。在剃须刀页面中调用组件ComponentA时,子组件ComponentB也是可见且可访问的。

是否有一种方法可以仅在项目ComponentB中在组件ProjectOne中使用它的内部创建子组件ComponentA

2 个答案:

答案 0 :(得分:1)

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

如果我要公开公开的根组件位于

MyApp.Components.Widget

然后我将子组件放入

MyApp.Components.Widget.Internal

无需再进行其他项目即可获得与先前回答中类似的结果,我们认为最好的方法是对其进行模糊处理,而不是使其成为“内部”或“私有”。

答案 1 :(得分:0)

可能不理想,但创建另一个项目来支持您的公共项目,并且只能由您的公共项目引用。您的使用项目仅引用您的公共项目。因此,以您为例,它将变为...

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

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