我有一个扩展方法:
.ToDescription()
此方法存在于
MyExtensions
命名空间中的 My.Methods
类中,位于名为 MyAssembly1
的程序集中。我在 MyExtensions
命名空间中的 My.Methods
类中还有其他扩展方法,但位于名为 MyAssembly2
的不同程序集中。
我的项目中引用了这两个程序集。
MyAssembly2.My.Methods.MyExtensions
不包含 .ToDescription()
方法。
我希望在 Razor 视图中使用
.ToDescription()
扩展方法,但我收到了不明确的引用错误:
“MyExtensions”类型同时存在于“MyAssembly1”和“MyAssembly2”中
当命名空间和类相同时,有没有办法告诉 Razor 视图使用哪个程序集?
注意:我确实尝试对此进行一些研究,但由于问题的复杂性,没有返回可用的结果。
我尝试重现你的问题,在.net 8中没问题,你可以尝试更新.net版本。
如果您想保留 .net 版本,有一个解决方法:
在项目文件中:
<ItemGroup>
<ProjectReference Include="..\ClassLibrary1\ClassLibrary1.csproj" >
<Aliases>CustomTypes</Aliases>
</ProjectReference>
<ProjectReference Include="..\ClassLibrary2\ClassLibrary2.csproj" />
</ItemGroup>
在program.cs中:
extern alias CustomTypes;
global using __Extension = CustomTypes::My.Methods;
在您的剃刀视图中:
@using __Extension
这是文档相关错误CS0433,希望有帮助