2010-02-02 2 views
0

나는 IDictionary<string, IParameter> QueryParameters이고 값을 할당하려하지만 실패했습니다.IDictonary <string, IParameter>

샘플 코드 :

public IDictionary<string, IParameter> QueryParameters 
{ 
    get 
    { 
    return new Dictionary<string, IParameter>(); 
    } 
} 

사람은 몇 가지 예를 제공하거나 나를 IParameter에 값을 할당하는 방법을 알려 주시기 바랍니다하십시오.

+0

System.Web.UI.WebControls.Parameter를 의미합니까? – bob

답변

1

문제는 매번 새로운 인스턴스를 반환한다는 것입니다. 시도 :

private readonly IDictionary<string, IParameter> m_QueryParameters = new Dictionary<string, IParameter>(); 

public IDictionary<string, IParameter> QueryParameters 
{ 
    get { return m_QueryParameters; } 
} 

지금 당신이 그것을 사용할 수 있습니다 : 당신은 새로운 IDictionary<string, IParameter> 예에게 QueryParameters 속성을 호출 할 때마다 반환하는

QueryParameters.Add("key", new Parameter()); 
+0

답장을 보내 주셔서 감사합니다. 그러나 새 Parameter()는 WebControls.Parameter이며 Microsoft.ReportingServices.Interfaces.IParameter로 변환 할 수 없습니다. – Nanda

+0

예, 구체적인 클래스의 이름을 알지 못했습니다. . 'Parameter '라는 이름은 단지 추측 일뿐입니다. 여기서'IParameter'를 구현하는 클래스를 사용해야합니다. – tanascius

0

.

당신은 아마 포함하는 클래스의 인스턴스를 유지해야

다음과 같이

class Foo 
{ 
    private IDictionary<string, IParameter> dict = 
    new Dictionary<string, IParameter>(); 

    public IDictionary<string, IParameter> QueryParameters 
    { 
    get 
    { 
     return dict; 
    } 
    } 
} 

한 다음 사용

void SomeFunc 
{ 
    Foo f = new Foo(); 
    f.QueryParameters.Add("name", new Parameter()); 
    f.QueryParameters.Add("something else", new Parameter()); 
} 
+0

답장을 보내 주셔서 감사합니다. 그러나 새 Parameter()는 WebControls.Parameter이며 Microsoft.ReportingServices.Interfaces.IParameter로 변환 할 수 없습니다. – Nanda

0

난 당신이 할당하지 않는 한 당신이 요구하는 어떤 특정하지 않다 유형 인 IP 매개 변수 당신이하는 일은 IParameter의 타입을 가지고 그것을 할당하는 변수를 생성하는 것입니다. 더 완벽해질 것입니다. IParameter가 인터페이스라고 가정하면 IParameter를 확장하고 그 인스턴스를 만드는 구체적인 클래스가 필요합니다.

따라서 somewhwre

클래스 매개 변수는 IParameter { ... }

귀하의 코드

IDictionary DICT = OBJ를 확장합니다. QueryParameters(); // 귀하의 메서드에서 사전을 얻으십시오 매개 변수 para = new Parameter();

dict.Add ("test", para);

표시되는 클래스에 대한 dalle의 답변도 참조하십시오.

관련 문제