В настоящее время я работаю над довольно простым приложением, которое использует классы Linq-to-SQL. Я добавляю новые методы и свойства в автоматически генерируемые dataclasses, используя тот факт, что они являются «частичными». Однако теперь я хотел бы фактически изменить код, содержащийся в одном методе класса, а именно SendPropertyChanged().Замена автоматически генерируемого кода на C#
Простейший способ, которым я могу это сделать, - это изменить код в самогенерированном файле .designer.cs, но я вижу, как это довольно опасно (поскольку код может быть перезаписан генератором кода). Есть ли альтернативный способ для меня безопасно изменить код?
EDIT: Почему я хочу это сделать: я хочу добавить свойство «isDirty», которое задается при каждом изменении любого поля. Поскольку всякий раз, когда изменяется поле, он вызывает метод SendPropertyChanged, я полагал, что я бы просто нажал «isDirty = true» там (с соответствующими проверками).
Это звучит неплохо, каждый раз, когда вы обновляете свой dbml, вы потеряете свои изменения. Почему вы хотите его заменить? Не можете ли вы использовать один из частичных методов? – Liath
Я хочу добавить свойство isDirty в класс, который устанавливается, когда какое-либо из полей обновляется. Я [i] мог использовать [/ i] события onFieldChanged() (и, не найдя подходящего альтернативного метода, я, вероятно, буду), и добавлю их в частичный класс, но он кажется слишком неэлегантным. –
Это также плохая идея использовать LINQ to SQL. Если у вас есть этот параметр, я бы рекомендовал переключиться на более зрелую, поддерживаемую ORM, такую как Entity Framework или nHibernate. L2S больше не разрабатывается ... он мертв. –