Как создать свойство статического класса в 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
а не просто обновление статических свойств.