Как создать свойство статического класса в C# 4.0

Я создал следующий класс

Статический класс CustomerServiceData.cs

namespace QSys.Library.Security
{
    public static class CustomerServiceData
    {
        public static bool CompanyNameUpdatable
        {
            get;
            set;
        }
        public static bool AddressUpdatable
        {
            get;
            set;
        }
        public static bool CityUpdatable
        {
            get;
            set;
        }
    }
}

Теперь я устанавливаю значение статического класса следующим образом. CustomerDataService.cs

namespace QSys.Web.Services
{
    public class CustomerDataService : DomainService
    { 
public void GetCustomerDataService()
        {
            CustomerServiceData.CompanyNameUpdatable = true;
            CustomerServiceData.AddressUpdatable = true;
            CustomerServiceData.CityUpdatable = true;
        }
    }
}

Здесь я хотел бы создать свойство статического класса, и он будет возвращать весь статический класс, как CustomerViewModel.cs

public class CustomerViewModel : NotificationObject
{
 #region Properties
        public CustomerServiceData SecurityData
        {
            get
            {
                // I HAVE RETURN CustomerServiceData AS STATIC
                //What should be coming here...? 
                return CustomerServiceData;
            }
        }
        public Customer Customer
        {
            get { return _customer; }
            set
            {
                _customer = value;
                RaisePropertyChanged(() => Customer);
            }
        }
        #endregion
}

Любые комментарии и предложения будут оценены!

Заранее спасибо, Имдадхусен

1 ответ

Вы не можете - нет такого понятия, как возвращение самого класса, и вы не можете использовать статический класс в качестве типа параметра, типа возврата, типа переменной и т. Д.

Вы могли бы повернуть CustomerServiceData в нестатический класс, но сделайте его синглтоном... но лично я бы остановил его полностью статичным. Статические данные - в общем, глобальные - затрудняют тестирование вашего кода и правильное рассуждение о нем. Избегайте глобальных данных, где вы можете. Подумайте, для чего нужны общие данные, и как лучше всего их туда доставить (например, внедрение зависимостей, провайдеры, передача данных в методы и т. Д.).

Ваш CustomerDataService.GetCustomerDataService метод (который несколько странно назван) должен * возвращать CustomerServiceData а не просто обновление статических свойств.

Другие вопросы по тегам