London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!

'UIDescriptorRegistry.Add(UIDescriptor)' is obsolete: 'Inherit UIDescriptorProvider to add new ui descriptors'

Vote:
 

Hi

I have a website on Episerver CMS 9.7.2 with an obsolete method warning that I am trying to fix... however, the class the warning recommends I use is the UIDescriptorProvider which has no 'Add' method.  So I'm not sure how I would go about adding a UIDescriptor to the descriptor registry 

In my site initialize method it exists

UiDescriptorRegistry.Service.Add(new UIDescriptor(typeof(IDefaultAllPropertiesView)) { DefaultView = CmsViewNames.AllPropertiesView });



Episerver documentation says the code isn't thread safe and recommends the UIDescriptorProvider instead to add ui descriptors.

http://world.episerver.com/documentation/Class-library/?documentId=cms/8/C63AC665

Not seeing how that would be done with this class http://world.episerver.com/documentation/Class-library/?documentId=cms/8/FC9EA5EB

Haven't been able to find much help online or on the forums for this yet.

Thanks in advanced.

Ben 

#185811
Dec 01, 2017 20:28
Vote:
 

Hi,

You can just implement your own UIDescriptorProvider, like this

[ServiceConfiguration(typeof(UIDescriptorProvider))]
public class MyContentUIDescriptorProvider : UIDescriptorProvider
{

/// <summary>
/// Returns UI descriptors for all content types with a model type in the content type respository.
/// </summary>
/// <returns>A list of <see cref="UIDescriptor"/> instances</returns>
public override IEnumerable<UIDescriptor> GetDescriptors()
{
  return new [] { 
new UIDescriptor(typeof(IDefaultAllPropertiesView)) { DefaultView = CmsViewNames.AllPropertiesView }

}
}
9.7.2 is a bit old, I'm not sure it's like that, but you get the idea
#185812
Dec 01, 2017 20:50
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.