To prawdopodobnie dotyczy innych miejsc, ale w WinForms, kiedy używam wiązania, znajduję wiele metod, które chcą wziąć nazwę właściwości, z którą się wiąże. Coś jak:Czy istnieje sposób statycznego wykonywania wiązania C#?
class Person
{
public String Name { get { ... } set { ... } }
public int Age { get { ... } set { ... } }
}
class PersonView
{
void Bind(Person p)
{
nameControl.Bind(p,"Name");
ageControl.Bind(p,"Age");
}
}
Dużym problemem Wciąż mając z tego jest to, że „Nazwa” i „Wiek” są określone jako ciągi. Oznacza to, że kompilator nie pomoże, jeśli ktoś zmieni jedną z właściwości danej osoby. Kod zostanie skompilowany poprawnie, ale powiązania zostaną zerwane.
Czy istnieje standardowy sposób rozwiązania tego, co przeoczyłem? Wydaje mi się, że potrzebuję jakiegoś słowa kluczowego, może nazywać się stringof, aby pasowało do istniejącego typeof. Można go używać coś takiego:
ageControl.Bind(p,stringof(p.Age).Name);
stringof mógł wrócić jakąś klasę, która ma właściwości dla uzyskania pełnej ścieżki, część ścieżki lub łańcucha, dzięki czemu można analizować go samemu.
Czy coś takiego można już zrobić?
nie jest to C#, który wiąże się dynamicznie, że dużo, to są WinForm. –
Prawda. Tego rodzaju funkcja języka może się przydać, nawet jeśli nie korzystasz z WinForm. –