2012-06-07 4 views
0

다음 문제가 있습니다 :동적 객체의 속성 유형을 선언하는 방법은 무엇입니까?

속성을 런타임으로 변경하려는 동적 객체 (ExpandoObject)를 사용하고 있습니다. 실마리가 무엇입니까 ... 내가 사용하고있는 사용자 정의 컨트롤이 유형이 double이 아닌 경우 속성이 double이라는 것을 식별 할 수 없기 때문에 속성을 두 배로 만들려고합니다. 내가 알고 있듯이이 경우에는 두 배가되어야하는 동적 객체의 알려진 유형의 속성이 있지만이 컨트롤에서는 작동하지 않습니다. 동적 객체의 새 속성을 선언하여 두 배임을 알리는 명시적인 방법이 있습니까? 사전에

감사합니다, ExpandoObject의 경우

답변

1

요안, 단지 이중 지정 : 나는 dynamic 객체가 아마 좋은 선택이 아니라고 말할 것입니다, 그러나

dynamic obj = new ExpandoObject(); 
    obj.Foo = 123.45; 
    Console.WriteLine(obj.Foo.GetType()); // System.Double 

을 그들은 강력한 속성 모델을 가지고 있지 않기 때문에 (사용자 정의 컨트롤에) UI 바인딩. 실제로 대부분의 UI 바인딩은 dynamic으로 업데이트되지 않으며 System.ComponentModel (dynamic에 대해 알지 못함)을 사용하려고합니다.

+0

나는 그것을 두 배로 할당하려고했지만, 두 배로 읽지는 않지만, 내가 값을 인식하지 못하기 때문에 객체라고 생각한다. –

+0

@ YoanPetrov 사용자 정의 컨트롤이란 정확히 무엇이며 개체에 대해 어떻게 말하고 있습니까? –

+0

개체에 바인딩 중이며 모든 속성이 표시됩니다. 내가 속성 중 일부를 두 번 클릭하면 값이 표시되고 계산이 수행되지만 실제로는 double로 표시되지 않지만 객체로는 어떤 캐스트도 생성하지 않습니다. –

관련 문제