-1

私のソリューションエクスプローラーでは、プロジェクト1つをWindowsサービス用BridgeWS に、もう1つのプロジェクトVytru.Platform.Bridge.Configurationに静的クラスを2つ用意しています。SharedData.cs

私の問題:この静的プロパティSharedData.DeviceListを使用して、サービス内のデバイスオブジェクトのリストを取得し たいのですBridgeWSが、常にnullに等しいですか?

これが私の解決策です

ここに画像の説明を入力してください

私の静的クラスからのいくつかのコード

public static  class SharedData
    {
        public const string CONFIGURATION_XML_PATH = @"\Configuration.xml";
        private static List<Device> _deviceList;

        public static void Initialize()
        {
            APPLICATION_LOCAL_PATH = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
            if (!string.IsNullOrEmpty(APPLICATION_LOCAL_PATH)) CONFIGURATION_FULL_PATH = APPLICATION_LOCAL_PATH + CONFIGURATION_XML_PATH;

            _deviceList = new List<Device>();
            _tempDeviceList = new List<Device>();
            _deviceAgent = new DeviceManager();
            _deviceAgent.Initialize();
        }           


        public static bool AddToTempDeviceList(Device device)
        {
            if (_tempDeviceList != null)
            {
                if (!_deviceAgent.IsExist(device, true))
                {
                    _tempDeviceList.Add(device);
                    return true;
                }
            }
            return false;
        }

        public static bool UpdateFile()
        {
            _deviceList = _tempDeviceList;
            return _deviceAgent.Save();
        }

          public static List<Device> DeviceList
        {
            get { return _deviceList; }
            set { _deviceList = value; }
        }

        public static List<Device> TempDeviceList
        {
            get { return _tempDeviceList; }
            set { _tempDeviceList = value; }
        }

        public static DeviceManager DeviceAgent
        {
            get { return _deviceAgent; }
            set { _deviceAgent = value; }
        }
    }

私の悪い英語に感謝し、申し訳ありません。

4

1 に答える 1

1

最初に Initialize メソッドを呼び出すことができます。そうしないと、コードのこれらの部分のためにプロパティが null になります

_deviceList = new List<Device>();
            _tempDeviceList = new List<Device>();
            _deviceAgent = new DeviceManager();
            _deviceAgent.Initialize();

BridgeWS で

SharedData.Initialize();
SharedData.TempDeviceList; // not null
SharedData.DeviceList; // not null
于 2012-07-04T20:57:02.177 に答える