对于 resx 资源文件,为什么要使用内部或 public 访问修饰符?

For a resx resource file, why should I use an internal or public access modifier?

这可能是个愚蠢的问题。但是我不明白什么时候应该将访问修饰符设置为 public 以及它会有什么区别?

这取决于 encapsulation level for your projects/solutions if you feel that resource is more likely to be used internally then set it up as a protected/private/internal 资源,如果其中一些属性可以由外部解决方案/项目配置和访问,则将其保留为 public。

封装很好,想想你使用外部库的方式以及它们如何公开属性、类、配置,这是一个很好的练习。像一个对你的项目实现一无所知的外部开发人员一样思考,你可以问自己以下问题:

  • 这段代码值得外部开发人员了解吗?
  • 我需要对此代码进行预配置吗?
  • 我的实现是否足够清晰,以至于任何人仅通过查看代码实现就可以理解它?
  • 代码是否强制执行某些 policies/requirements?
  • 我的代码有晦涩的实现吗?

例如,对于我来说,谈论 IOC,setter 注入可能有点晦涩

Setter injection is just creating a setter property to replace a dependency on a previously instantiated object. I don’t like Setter Injection because it requires extra, hidden steps to prepare an object to execute

查看 this post 以获取完整的上下文作为示例,但这同样只是一个示例。