2012-11-29 5 views
1

"Dynamic"이라는 속성과 SetDefaultValues()이라는 속성이 동일한 DLL에 있습니다. 속성이다른 DLL에있는 속성에 액세스하는 방법

public class ManagedProperty: DataModelObject, ISerializable 
{ 

    public bool Dynamic 
    { 
     get 
     { 
      return m_dynamic; 
     } 
     set 
     { 
      m_dynamic = value; 
     } 
    } 
    private bool m_dynamic = true; 
} 

방법 SetDefaultValues ​​아래에 표시됩니다() 난 내 윈도우 서비스를 다시 시작 할 때마다, 그것은 버그가 원래 값에서 디폴트 지금 내가 직면하고 defult.The 문제의 모든 값을 기본적됩니다. 그래서 내가 원하는 조건은 "동적"속성이 거짓 일 때마다 오류가 발생하지 않아야합니다.

따라서 창 서비스에서 코드를 유발하는 문제가 아래에 나와 있습니다. 디버거 속성 동적 항상

      for (int i = 0; i < allObjects.Count; i++) 
            { 
             DataModelObject dmo = (DataModelObject)allObjects.GetAt(i); 
             dmo.SatisfyGRs(allObjects); // Satisfy all GUID references. 
             if (dmo is ManagedDevice) 
             { 
              ManagedDevice md = (ManagedDevice)dmo; 

              // Set default values for user defined properties 
              if (md.SetDefaultValues()) 
              { 
               SaveObject(md, false); 
              } 
              md.CheckThresholds(); // Check thresholds on all properties 
             } 
            } 

사실 나는 그것이 아래 그림처럼,하지만 난 그것을 제대로 작동 및 기본 값에 설정되지 몰라요 수정 보여줍니다. 사람이 무엇을 잘못 여기 것입니다 말해, 또는 모든 것이 올 바르고 난 다른 환경

      for (int i = 0; i < allObjects.Count; i++) 
            { 
             DataModelObject dmo = (DataModelObject)allObjects.GetAt(i); 
             dmo.SatisfyGRs(allObjects); // Satisfy all GUID references. 
             if (dmo is ManagedDevice) 
             { 
              ManagedDevice md = (ManagedDevice)dmo; 
              ManagedProperty userprop = new ManagedProperty(); 
              if (userprop.Dynamic == false){ 
              // Set default values for user defined properties 
              if (md.SetDefaultValues()) 
              { 
               SaveObject(md, false); 
              }} 
              md.CheckThresholds(); // Check thresholds on all properties 
             } 
            } 
+0

이것은 모두 메모리에 있습니다. 맞습니까? 서비스를 다시 시작하면 메모리에있는 모든 것을 잃게됩니다. 다시 시작 사이에 상태를 유지하려면 다시 시작하기 전에 해당 상태 (파일, DB 등)를 유지 한 다음 다시 시작한 후에 해당 상태를로드해야합니다. –

+0

@Bob 호른, 아니 다시 시작하기 전에 내가 저장 한 및 데이터베이스 xml 값을 볼 수 있지만 모든 defalut 다시 시작할 때. 내 deugger가 제대로 연결되지 않고 어떻게이 코드를 주석으로 처리했는지 정확하게 알 수있게되면서이 문제를 알게되었습니다. – ponting

+0

'if' 문에 실수가 있습니까? 거짓 일 때 기본 설정하지 않아야한다고 말했습니까? 당신의 진술이 다음과 같지 않아야합니다 :'if (userprop.Dynamic! = false)'? 지금 당장은 이미 거짓 일 때만 기본값이됩니다. –

답변

0

문제는 당신이 필드 이니셜 라이저에서 true로 m_dynamic 설정하는 것입니다를 확인해야 할 수 있습니다

private bool m_dynamic = true; 

다음 코드가 있습니다.

ManagedProperty userprop = new ManagedProperty(); 
if (userprop.Dynamic == false) 

어떻게 사실 일 수 있습니까? ManagedProperty를 인스턴스화하면 매번 Dynamic이 true가됩니다.

+0

아니,이 작동하지 않습니다, 나는 동적 값을 윈도우 서비스에 현재 값을 보낼 수있는 메커니즘이 필요합니다 – ponting

관련 문제