2012-07-04 1 views
-1

в моем обозревателе решений я буксировать проект один для окон службы BridgeWS и другого проект Vytru.Platform.Bridge.Configuration имеет статический класс SharedData.csСтатического свойства с службой Windows

Моей проблемы: я хочу использовать это статическое свойство SharedData.DeviceList, чтобы получить мой список Объект устройства в BridgeWS Сервис, но он всегда равен нулю?

это мое решение

enter image description here

некоторый код из моего статического класса

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; } 
     } 
    } 

спасибо и извините за мой плохой английский.

+1

Когда статическое свойство ступало? Просто сделать что-то статическое недостаточно, чтобы фактически установить экземпляр в статическую ссылку. – Andy

+0

Можете ли вы предоставить какой-то код вокруг 'SharedData.DeviceList' – aqwert

+0

@aqwert я поделился некоторым кодом – tito11

ответ

1

Сначала вы можете вызвать метод Initialize. Если вы этого не сделаете, свойство будет аннулировано из-за этих части кода

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

В BridgeWS

SharedData.Initialize(); 
SharedData.TempDeviceList; // not null 
SharedData.DeviceList; // not null 
+0

спасибо Мехмет, я пытаюсь, но он не работает :( – tito11