public void AddProviderToTypeAndInstance() { var instance = new Base(); // Before adding TDPs var props = TypeDescriptor.GetProperties(instance).Cast<PropertyDescriptor>(). Select(p => p.Name).ToArray(); CollectionAssert.AreEquivalent(new[] { "A", "B" }, props); TypeDescriptionProvider typeProvider = null; TypeDescriptionProvider instanceProvider = null; try { typeProvider = new AssociatedMetadataTypeTypeDescriptionProvider(typeof(Base)); TypeDescriptor.AddProvider(typeProvider, typeof(Base)); instanceProvider = new TestTypeDescriptionProvider(instance); TypeDescriptor.AddProvider(instanceProvider, instance); // After adding TDPs props = TypeDescriptor.GetProperties(instance).Cast<PropertyDescriptor>(). Select(p => p.Name).ToArray(); CollectionAssert.AreEquivalent(new[] { "A", "B", "CustomProperty1", "CustomProperty2" }, props); } finally { // Ensure we remove the providers we attached. TypeDescriptor.RemoveProvider(typeProvider, typeof(Base)); TypeDescriptor.RemoveProvider(instanceProvider, instance); } }
public void AddProviderToTypeAndInstance() { var instance = new Base(); // Before adding TDPs var props = TypeDescriptor.GetProperties(instance).Cast <PropertyDescriptor>(). Select(p => p.Name).ToArray(); CollectionAssert.AreEquivalent(new[] { "A", "B" }, props); TypeDescriptionProvider typeProvider = null; TypeDescriptionProvider instanceProvider = null; try { typeProvider = new AssociatedMetadataTypeTypeDescriptionProvider(typeof(Base)); TypeDescriptor.AddProvider(typeProvider, typeof(Base)); instanceProvider = new TestTypeDescriptionProvider(instance); TypeDescriptor.AddProvider(instanceProvider, instance); // After adding TDPs props = TypeDescriptor.GetProperties(instance).Cast <PropertyDescriptor>(). Select(p => p.Name).ToArray(); CollectionAssert.AreEquivalent(new[] { "A", "B", "CustomProperty1", "CustomProperty2" }, props); } finally { // Ensure we remove the providers we attached. TypeDescriptor.RemoveProvider(typeProvider, typeof(Base)); TypeDescriptor.RemoveProvider(instanceProvider, instance); } }
public void AddMultipleProvidersToType() { // Before adding TDPs var props = TypeDescriptor.GetProperties(typeof(Base)).Cast <PropertyDescriptor>(). Select(p => p.Name).ToArray(); CollectionAssert.AreEquivalent(new[] { "A", "B" }, props); TypeDescriptionProvider associatedMetadataProvider = null; TypeDescriptionProvider testProvider = null; try { associatedMetadataProvider = new AssociatedMetadataTypeTypeDescriptionProvider(typeof(Base)); TypeDescriptor.AddProvider(associatedMetadataProvider, typeof(Base)); testProvider = new TestTypeDescriptionProvider(typeof(Base)); TypeDescriptor.AddProvider(testProvider, typeof(Base)); // After adding TDPs props = TypeDescriptor.GetProperties(typeof(Base)).Cast <PropertyDescriptor>(). Select(p => p.Name).ToArray(); CollectionAssert.AreEquivalent(new[] { "A", "B", "CustomProperty1", "CustomProperty2" }, props); } finally { // Ensure we remove the providers we attached. TypeDescriptor.RemoveProvider(associatedMetadataProvider, typeof(Base)); TypeDescriptor.RemoveProvider(testProvider, typeof(Base)); } // Add providers in reverse order try { testProvider = new TestTypeDescriptionProvider(typeof(Base)); TypeDescriptor.AddProvider(testProvider, typeof(Base)); associatedMetadataProvider = new AssociatedMetadataTypeTypeDescriptionProvider(typeof(Base)); TypeDescriptor.AddProvider(associatedMetadataProvider, typeof(Base)); props = TypeDescriptor.GetProperties(typeof(Base)).Cast <PropertyDescriptor>(). Select(p => p.Name).ToArray(); CollectionAssert.AreEquivalent(new[] { "A", "B", "CustomProperty1", "CustomProperty2" }, props); } finally { // Ensure we remove the providers we attached. TypeDescriptor.RemoveProvider(associatedMetadataProvider, typeof(Base)); TypeDescriptor.RemoveProvider(testProvider, typeof(Base)); } }
public void AddMultipleProvidersToType() { // Before adding TDPs var props = TypeDescriptor.GetProperties(typeof(Base)).Cast<PropertyDescriptor>(). Select(p => p.Name).ToArray(); CollectionAssert.AreEquivalent(new[] { "A", "B" }, props); TypeDescriptionProvider associatedMetadataProvider = null; TypeDescriptionProvider testProvider = null; try { associatedMetadataProvider = new AssociatedMetadataTypeTypeDescriptionProvider(typeof(Base)); TypeDescriptor.AddProvider(associatedMetadataProvider, typeof(Base)); testProvider = new TestTypeDescriptionProvider(typeof(Base)); TypeDescriptor.AddProvider(testProvider, typeof(Base)); // After adding TDPs props = TypeDescriptor.GetProperties(typeof(Base)).Cast<PropertyDescriptor>(). Select(p => p.Name).ToArray(); CollectionAssert.AreEquivalent(new[] { "A", "B", "CustomProperty1", "CustomProperty2" }, props); } finally { // Ensure we remove the providers we attached. TypeDescriptor.RemoveProvider(associatedMetadataProvider, typeof(Base)); TypeDescriptor.RemoveProvider(testProvider, typeof(Base)); } // Add providers in reverse order try { testProvider = new TestTypeDescriptionProvider(typeof(Base)); TypeDescriptor.AddProvider(testProvider, typeof(Base)); associatedMetadataProvider = new AssociatedMetadataTypeTypeDescriptionProvider(typeof(Base)); TypeDescriptor.AddProvider(associatedMetadataProvider, typeof(Base)); props = TypeDescriptor.GetProperties(typeof(Base)).Cast<PropertyDescriptor>(). Select(p => p.Name).ToArray(); CollectionAssert.AreEquivalent(new[] { "A", "B", "CustomProperty1", "CustomProperty2" }, props); } finally { // Ensure we remove the providers we attached. TypeDescriptor.RemoveProvider(associatedMetadataProvider, typeof(Base)); TypeDescriptor.RemoveProvider(testProvider, typeof(Base)); } }