1

次のクラスを作成しました

静的クラス 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
}

コメントや提案をいただければ幸いです。

前もって感謝します, Imdadhusen

4

1 に答える 1

3

できません-クラス自体を返すような概念はなく、静的クラスをパラメーター型、戻り型、変数型などとして使用することはできません。

非静的クラスに変えることはできますが、それをシングルトンにすることができます...しかし、個人的には、完全に静的になるのをやめます。CustomerServiceData静的データ(基本的にはグローバル)を使用すると、コードをテストして適切に推論することが困難になります。可能な限り、グローバルデータは避けてください。共有データが必要なものと、そこに到達するための最良の方法(依存性注入、プロバイダー、メソッドへのデータの受け渡しなど)について考えてください。

メソッド(やや奇妙な名前)は、静的プロパティを更新するだけでなく、CustomerDataService.GetCustomerDataService*を返す必要があります。CustomerServiceData

于 2012-03-10T09:00:30.320 に答える