public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance) { if (instance != null) { // Interface is implemented by ViewModelWithTypeDescriptor return((ICustomTypeDescriptor)instance); } if (objectType != null) { IVMDescriptor classDescriptor = ClassDescriptorAttribute.GetClassDescriptorOf(objectType); if (classDescriptor != null) { return(new ViewModelTypeDescriptor(classDescriptor)); } } return(base.GetTypeDescriptor(objectType, instance)); // return an empty TypeDescriptor }
public void GetClassDescriptor_WhenOnlyBaseTypeHasAttribute_ReturnsClassDescriptor() { var actual = ClassDescriptorAttribute.GetClassDescriptorOf(typeof(DerivedViewModel)); Assert.AreEqual(ViewModelWithClassDescriptor.ClazzDescriptor, actual); }
public void GetClassDescriptor_ForTypeWithClassDescriptorAttribute_ReturnsClassDescriptor() { var actual = ClassDescriptorAttribute.GetClassDescriptorOf(typeof(ViewModelWithClassDescriptor)); Assert.AreEqual(ViewModelWithClassDescriptor.ClazzDescriptor, actual); }
public void GetClassDescriptor_ForTypeWithoutClassDescriptorAttribute_ReturnsNull() { var actual = ClassDescriptorAttribute.GetClassDescriptorOf(typeof(ViewModelWithoutClassDescriptor)); Assert.IsNull(actual); }