How can i hide “setters” from all but one assembly?

前端 未结 3 1979
执念已碎
执念已碎 2021-01-15 17:23

I have alluded to this issue in my other question, but i think it\'s worthwhile breaking it out into its own question, as it\'s not really dependant on the other scenarios i

3条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2021-01-15 17:38

    you could make the setter internal, and make the internals visible to the repository assembly

    [assembly: InternalsVisibleTo("MyLibrary.Repositories")]
    public class Post
    {
       public int PostId { get; internal set; }
       public int Name { get; internal set; }
          ...
    }
    

    This means that everything can 'get' those properties, but only this assembly, and the assembly containing the repository, can 'set'

提交回复
热议问题