internal FrameworkElement CreateElement(IDeferredQuickInfoContent deferredContent) { var deferredContentFullName = deferredContent.GetType().FullName; Lazy <IDeferredQuickInfoContentToFrameworkElementConverter> converter; if (!_convertersByTypeFullName.TryGetValue(deferredContentFullName, out converter)) { // The content must be of a type we didn't have MEF deferred metadata for. Realize the // ones without MEF metadata, forcing everything to load. foreach (var converterWithoutMetadata in _convertersWithoutMetadata) { _convertersByTypeFullName[converterWithoutMetadata.Value.GetApplicableType().FullName] = new Lazy <IDeferredQuickInfoContentToFrameworkElementConverter>(() => converterWithoutMetadata.Value); } Contract.ThrowIfFalse(_convertersByTypeFullName.TryGetValue(deferredContentFullName, out converter)); } return(converter.Value.CreateFrameworkElement(deferredContent, this)); }
internal FrameworkElement CreateElement(IDeferredQuickInfoContent deferredContent) { return(_convertersByType[deferredContent.GetType()].CreateFrameworkElement(deferredContent, this)); }