部分封装字段C#

Che*_*rot 2 c# design-patterns

我想知道是否有任何模式可以解决这个问题:我有一组属性需要公开给几个类和其他类,它们应该只是readonly,类必须是公共的.

我不想使用反射或任何其他糟糕的性能制造者.

我知道我可以让他们成为RO并在课堂上实现逻辑,但我认为这不好.

有帮助吗?

Mar*_*ell 8

在当前装配体内,您可以制作它internal.

在当前组件之外,您可以做的最好的事情是通过它使特定组件可用[InternalsVisibleTo].

.NET不提供更细粒度的"朋友"访问.

  • 我认为这应该被视为一种反模式. (4认同)

THX*_*138 7

class Person : IReadOnlyPerson {
    public string Name { get; set; }
}

public interface IReadOnlyPerson {
    string Name { get; }
}
Run Code Online (Sandbox Code Playgroud)

对那些应该进行r/o访问的类 - 使用 IReadOlyPerson