private WidgetDescriptor SelectWidget(Type widgetType) { var descriptors = _descriptorProvider.Widgets; foreach (var descriptor in descriptors.Items) { if (descriptor.Type == widgetType) { return descriptor; } } throw new InvalidOperationException("Cannot find widget type " + widgetType.FullName); } }