DataAccessレイヤーにLINQtoSQLを使用しています。データアクセス層にあるものと同様のビジネスオブジェクトがあります。
データプロバイダーにメッセージ#23が表示されます。メッセージのインスタンス化時に、メッセージコンストラクターで、MessageTypeを取得し、MessageTypeクラスの新しいインスタンスを作成し、データベースからMessageType情報を入力します。
したがって; これでメッセージのMessageTypeの名前を取得したいと思います。
user.Messages[23].MessageType.Name
また、管理者にMessageTypeを設定してもらいたい
user.Messages[23].MessageType = MessageTypes.LoadType(3);
しかし、私はユーザーがMessageType.Nameを公に設定することを望んでいません。しかし、新しいMessageTypeインスタンスを作成すると、外部クラス(データアクセス層)から設定するため、Nameプロパティのアクセス修飾子はパブリックになります。
これをプロパティからinternalに変更して、クラスがパブリック変数のようにアクセスできるようにし、他のアプリケーションがアクセスして変更できないようにすることができます。
公共の財産のように見えるので、これはまだ正しく感じられません。この状況でのパブリックアクセス修飾子は悪いですか?ヒントや提案をいただければ幸いです。
ありがとう。