Mam metodę która zwraca JsonResult w formacie
a) { success = true, msg = "xx" }
b) { lista obiektów }
Chcę się dobrać do właściwości tych obiektów więc rzutuje na dynamic
dynamic jsonData = jsonResult.Data;
// W przypadku b)
jsonData.Data[0].Property // działa
// W przypadku a)
jsonData.success // nie działa
jsonData.Data.success // nie działa
Przypadek a) rzuca wyjątek, w którym mowa, że nie ma owej właściwości zdefiniowanej w obiekcie.
Sęk w tym, że jak podglądam za pomocą odpluskiwacza(:D) to są takie właściwości i ba mają nawet przypisane wartości wygląda to tak:
// zmienna : wartość : typ
jsonData : " { success = true, ... } : annonymous type
success : true : bool
msg : "xx" : string
No i moje pytania są takie
- Dlaczego przypadek a) nie działa a b) tak?
- Co zrobić by a) działał? Potrzebuje tego do testów jednostkowych ponieważ nie chcę do
Assert.Equal
wpisywać ręcznie treści tylko za pomocą zmiennych np.Assert.True(jsonData.success)
Wrzuciłem do projektu z testami [assembly: InternalsVisibleTo("Nazwa.Tests")]
tak jak pisali na Internecie by działało ale nie działa ;|