SPC055201: Consider using SPContentTypeCollection.BestMatch(SPContentTypeId) to retrieve a Content Type

Use SPContentTypeCollection.BestMatch(string) to retrieve a Content Type from a SPContentTypeCollection.

TypeName: ConsiderBestMatchForContentTypesRetrieval
CheckId: SPC055201
Severity: CriticalWarning
Type: AssemblyFileReference
Resolution

Consider using SPContentTypeCollection.BestMatch() instead of using the indexer. See sample below:

Bad Practice:

// get the ContentType via index which failes if the exact ContentType is not there
SPContentTypeId ctypeId = new SPContentTypeId("0x010008F15D6B2D0A466BA95AA5D91E21416E");
SPContentType cType = web.ContentTypes[ctypeId];
...
Good Practice:
// get the nearest match to the specified ContentType ID
SPContentTypeId ctypeId = new SPContentTypeId("0x010008F15D6B2D0A466BA95AA5D91E21416E");
SPContentTypeId matchId = web.ContentTypes.BestMatch(id);
SPContentType cType = web.ContentTypes[matchId];
...

Links

comments powered by Disqus