public void MainTest() { using (var session = Domain.OpenSession()) using (var t = session.OpenTransaction()) { var some = new Some { Tag = 100500, Reference = new Ref { Tag = 9000 }, Structure = new Struct { Tag = 777 } }; var tagObject = some.GetProperty <object>("Tag"); var tagValue = some.GetProperty <uint>("Tag"); var tagIndexed = some["Tag"]; AssertEx.Throws <InvalidCastException>(() => some.GetProperty <long>("Tag")); Assert.AreEqual(100500, tagValue); Assert.AreEqual(100500, (uint)tagObject); Assert.AreEqual(100500, (uint)tagIndexed); var refObject = some.GetProperty <object>("Reference.Tag"); var refValue = some.Reference.Tag; Assert.AreEqual(9000, refValue); Assert.AreEqual(9000, (uint)refObject); var strObject = some.GetProperty <object>("Structure.Tag"); var strValue = some.Structure.Tag; Assert.AreEqual(777, strValue); Assert.AreEqual(777, (uint)strObject); some.SetProperty("Tag", 111u); some.SetProperty("Reference.Tag", 111u); some.SetProperty("Structure.Tag", 111u); Assert.AreEqual(111u, some.Tag); Assert.AreEqual(111u, some.Reference.Tag); Assert.AreEqual(111u, some.Structure.Tag); t.Complete(); } }