Я продолжаю работать с ошибкой «Нельзя ссылаться на член экземпляра класса из совместно используемого метода или инициатора разделяемого члена без явного экземпляра класса». Я работаю над приложением VB.NET MVC. У меня есть модель, которая обладает свойствами безопасности верхнего уровня, содержащимися в классе верхнего уровня, которые должны быть доступны классам этого класса. Мои свойства всегда следуют этой структуры:Свойства в вложенных классах в VB.NET
Private _SecurityVar = Nothing
Public Shared Property SecurityVar
Get
If _SecurityVar = Nothing Then
_SecurityVar = User.IsInRole("SecurityFunction")
End If
Return _SecurityVar
End Get
Set(value)
End Set
End Property
Моя проблема заключается в том, что я не могу получить доступ к _SecurityVar б/с, что не разделяет. Я не хочу, чтобы _SecurityVar был доступен в моем представлении, просто SecurityVar. Затем мне нужно получить доступ к этим переменным верхнего уровня из классов, которые содержатся в этом классе, например список заказов. Я не хочу просто возвращать User.IsInRole («SecurityFunction»), потому что я бы несколько раз ударил базу данных; что было бы крайне неэффективно, особенно когда речь заходит о создании большого стола. Как мне обойти это, есть ли лучший способ?
Я считаю, что лучший способ сделать это, чтобы сделать подклассы «Aware» их родителей. Разделение - это очень слабое и, на мой взгляд, плохое программирование. –
Что-то в твоем дизайне не стало для меня естественным, но я не могу придумать разумный способ рассказать тебе «почему», зная об этом больше или рассказывая о том, чтобы переделать все это. Из-за этого: вам просто нужно сделать так, чтобы вы «Private _SecutiryVar» тоже –