.net 当使用PackageReference作为RestoreProjectStyle时,如何避免传递依赖项的类型暴露? ProjectAreferencesProjectB ProjectBreferencesProjectC ProjectA在.csproj中有PackageReference

.net 当使用PackageReference作为RestoreProjectStyle时,如何避免传递依赖项的类型暴露? ProjectAreferencesProjectB ProjectBreferencesProjectC ProjectA在.csproj中有PackageReference,.net,visual-studio,msbuild,csproj,transitive-dependency,.net,Visual Studio,Msbuild,Csproj,Transitive Dependency,鉴于上述情况,可以直接引用ProjectA中的ProjectC类型。这是不可取的,因为我不想将类型泄漏到ProjectA 如何避免这种编译时自动依赖项继承/类型暴露?目前还不能。有一些变通方法,比如尝试更改对不同名称空间的引用等 如果您不想通过其他程序集来实例化某些类型,请考虑使用内部< /代码>构造函数/类型(连同IntualsVisualto

鉴于上述情况,可以直接引用
ProjectA
中的
ProjectC
类型。这是不可取的,因为我不想将类型泄漏到
ProjectA


如何避免这种编译时自动依赖项继承/类型暴露?

目前还不能。有一些变通方法,比如尝试更改对不同名称空间的引用等


如果您不想通过其他程序集来实例化某些类型,请考虑使用<代码>内部< /代码>构造函数/类型(连同IntualsVisualto InternalsVisibleTo?指向讨论此更改的内容的链接。如果我错了,请纠正我,但是从宿主应用程序引用ProjectC不是没有必要的,因为程序集解析将加载必要的程序集,而不会在编译时实际公开类型吗?因此,在运行时可以正确加载这些类型,但ProjectA(hsoting应用程序)无法在代码中显式引用这些类型。。。当然,只要ProjectC中的任何类型都没有暴露在ProjectB的公共接口中。