Let's say I have an interface representing a domain object:
public interface IFoo
{
Bar Bar { get; }
}
The Bar
type is a family of objects, each of which has a slightly different schema. In the database, this is represented as XML (this is a mobile app, so it is simply nvarchar
, not a true XML column).
I have a generated DataSet
which contains an FooDataTable
and corresponding FooRow
objects:
// AcmeDataSet.designer.cs
public partial class FooRow : DataRow
{
public string BarXml
{
// Generated get and set
}
}
I would like to implement IFoo
and cache the deserialized instance of Bar
:
// FooRow.cs
public partial class FooRow : IFoo
{
private Bar _bar;
Bar IFoo.Bar
{
get { return _bar; }
}
}
How can I, from within the partial class, determine that the value of BarXml
has changed?
I realize that FooDataTable
contains ColumnChanging
and ColumnChanged
events, but I don't know how to subscribe to them. There is no analog to Linq to Sql's OnCreated
partial method and I don't know of another way to hook into the generated constructor.