2009-10-07 3 views
0

내 질문에서 액세스, 일단 클래스에 등록되어 설정이 : 나는 하나 개의 클래스에서 동적 데이터를 설정하면기본적으로 또 다른

, 나는에 액세스 할 수 다른 클래스에서 동일한 데이터?를 아래는 내가 뭘하려고 오전의 거친 의사 코드입니다 :

Public Class Person 
{ 
    public string ID { get; set; } 
    public string Name { get; set; } 

} 

을하고, 나는 다음을 수행하십시오

Public Class SomeClass 
{ 

    private void SomeMethod() 
    { 

     List<Person> p = new List<Person>(); 

     loop { 
      p.Add(id[i], name[i]); 
      Timer t = new Timer(); 
      t.Interval = 1000; 
     } 
} 

내가 SomeOtherClass에서 SomeClass 에 설정된 값에 액세스 할 수 있도록 :

당신의 생각에 대한
Public SomeOtherClass 
{ 

    private List<Person> SomeOtherMethod(string id) 
    { 
     // HERE, THE RESPONSE VALUES MAY CHANGE BASED ON 
     // WHERE IN THE LOOP SomeClass.SomeMethod HAS SET 
     // THE VALUES IN Person. 

     var query = from p in Person 
        where p.ID == id 
        select p; 

     return query.ToList(); 

    } 

} 

감사합니다 ...

답변

0

당신은 membe에 액세스 할 수 있습니다 rs (ID, Name)는 공개로 선언 했으므로

"사람"이라고 말하면 유형 - 사람 유형을 말합니다.

특정 사용자에 액세스하려면 Person 인스턴스를 사용해야합니다.

그러나 예제에서 SomeOtherClass의 메서드에 특정 "Person"인스턴스 컬렉션을 제공해야합니다. 당신은 다음처럼 다른 사람이 어딘가를 사용할 수

Public SomeOtherClass 
{ 

    // You need to provide some collection of Person instances! 
    public List<Person> SomeOtherMethod(string id, IEnumerable<Person> people) 
    { 
     var query = from p in people 
       where p.ID == id 
       select p; 

     return query.ToList(); 
    } 
} 

: 같은

void SomeMethod() 
{ 
     List<Person> people = new List<Person>(); 
     people.Add(new Person(1, "Name1"); 
     people.Add(new Person(2, "Name2"); 

     SomeOtherClass other = new SomeOtherClass(); 
     List<Person> filteredPeople = other.SomeOtherMethod(1); 
} 
+0

귀하의 게시, 덕분에 매우 도움이되었다. 그러나, 나는 여전히 특정 부분에 매달려있다 - 클래스 2의 컨텍스트로부터 클래스 1에 설정된 데이터에 액세스 할 수 있는가? 루프의 데이터를 설정하는 page.aspx.cs 코드 숨김이 있습니다. 리스트 사람 = 새 목록 (); (i = 0; i <= Request.Name.Count - 1; i ++)에 대한 { person.Add (새 Person (Request.ID [i], Request.Name [i]))); 내 웹 서비스가 호출 될 때마다 가} 다음, 나는 데이터가 호출되는 루프에 어떤 시점에서 사람들이 데이터의 목록을 반환 할 수 있도록하려면 : 목록 IPeopleService.GetPeople() { // 나는 아직도 여기에서 분실했다 } –

+0

이것을 할 수 있습니까? 내 코드에서 데이터를 설정 한 다음 다른 클래스의 "설정 중"으로 데이터에 액세스하여 진행 상황 업데이트를 받으십시오. 아니면이 문제를 해결할 더 좋은 방법이 있습니까? 귀하의 도움을 많이 주시면 감사하겠습니다. –

+0

글쎄, 만약 당신이 "설정대로"접근하려한다면 : 다른 스레드에서 정확히 같은 시간에 가능하지만, 잠금 메커니즘을 사용하여 데이터를 보호해야합니다 . 공유 서비스가 있어야 목록에 대한 액세스 권한을 얻을 수 있습니다.하지만 그렇게하는 한 정상적으로 작동합니다. –