Ok. Mam więc kod, który odwzorowuje określone kontrolki na winForm na pewne właściwości w obiekcie, w celu wykonania pewnych czynności na elementach sterujących, gdy pewne rzeczy zdarzają się danym. Wszystko dobrze i dobrze, działa dobrze. Nie problem. Problem jest, aby dodać elementy do mapowania, wzywam funkcję, która wygląda tak:Wyodrębnianie nazw właściwości dla odbicia za pomocą IntelliSense i sprawdzanie w czasie kompilacji
this.AddMapping(this.myControl,myObject,"myObjectPropertyName");
Problem napotkasz jest to, że bardzo trudno jest powiedzieć, w czasie kompilacji, różnica pomiędzy powyższej linii a poniżej:
this.AddMapping(this.myControl,myObject,"myObjectPropretyName");
Ponieważ ostatni parametr jest ciągiem znaków, nie ma czasu kompilacji sprawdzanie czy coś w tym, że wymusi że sam ciąg faktycznie odpowiada poprawną nazwą nieruchomości na danym obiekcie. Dodatkowo, takie rzeczy jak Refactor i "Find All References" omijają ten rodzaj odniesienia, co powoduje radość, gdy zmienia się nazwa samej nieruchomości. Zastanawiam się więc, czy istnieje sposób na zmianę funkcji, tak, że to, co przekazuję, jest nadal ciągiem reprezentującym nazwę właściwości w jakiś sposób, ale z kompilacją czasu sprawdzania rzeczywistej wartości wchodzącej. Ktoś powiedział można to zrobić za pomocą Expression Trees, ale przeczytałem je i wydaje mi się, że nie widzę połączenia. Chciałbym zrobić coś takiego:
this.AddMapping(this.myControl,myObject,myObject.myObjectPropertyName);
lub nawet
this.AddMapping(this.myControl,myObject.myObjectPropertyName);
będzie słodka!
Wszelkie pomysły?
Trwało 6 lub 7 przebiegów, zanim mogłem zauważyć różnicę w dwóch liniach kodu. – jjnguy
Witajcie w moim piekle ... wyobraźcie sobie teraz, że jest zaśmiecony akronimami takimi jak CPCR, CPR, CLI, itd ... – GWLlosa
Przez najdłuższy czas pragnęłem jakiegoś dodatku VS, który wypakowałby wszystkie struny w waszym sprawdzanie kodu i pisowni. Uwzględniłoby to także osłonę wielbłąda i sprawdzanie pisowni każdego słowa osobno. Ktoś musi napisać ten frajer ... – BFree