Допустим, у меня есть интерфейс, представляющий объект домена:
public interface IFoo
{
Bar Bar { get; }
}
Тип Bar
- это семейство объектов, каждый из которых имеет немного отличающуюся схему. В базе данных это представляется в виде XML (это мобильное приложение, поэтому это просто nvarchar
, , а не настоящий столбец XML).
У меня есть сгенерированный DataSet
, который содержит FooDataTable
и соответствующие FooRow
объекты:
// AcmeDataSet.designer.cs
public partial class FooRow : DataRow
{
public string BarXml
{
// Generated get and set
}
}
Я хотел бы реализовать IFoo
и кэшировать десериализованный экземпляр Bar
:
// FooRow.cs
public partial class FooRow : IFoo
{
private Bar _bar;
Bar IFoo.Bar
{
get { return _bar; }
}
}
Как я могу из частичного класса определить, что значение BarXml
изменилось?
Я понимаю, что FooDataTable
содержит ColumnChanging
и ColumnChanged
события, но я не знаю, как подписаться на них. Нет аналога частичного метода OnCreated
в Linq to Sql, и я не знаю другого способа подключиться к сгенерированному конструктору.