internal ExtendedResourceInfo(Type extendedType, Type serverType, PropertyInfo dictProperty, ExtendedResourceMapper mapper)
{
ExtendedType = extendedType;
ServerType = serverType;
DictProperty = dictProperty;
this.mapper = mapper;
Type[] dictTypeArgs;
if (dictProperty != null
&& dictProperty.PropertyType.TryExtractTypeArguments(typeof(IDictionary<,>), out dictTypeArgs))
DictValueType = dictTypeArgs[1];
this.extendedProperties =
new Lazy<ReadOnlyCollection<ExtendedProperty>>(() => InitializeExtendedProperties().ToList().AsReadOnly());
}