public void Test_WorkItemRequest_subclass_roundtrip() { var requestA = new TestRequestA(); var requestB = new TestRequestB(); var a = Serializer.SerializeWorkItemRequest(requestA); var b = Serializer.SerializeWorkItemRequest(requestB); // ensure that we get instances of the correct sub-classes back, even if we ask for the base-class Assert.IsInstanceOf(typeof(TestRequestA), Serializer.DeserializeWorkItemRequest(a)); Assert.IsInstanceOf(typeof(TestRequestB), Serializer.DeserializeWorkItemRequest(b)); }