TryGetValue<T> method
Tries to get property value.
The property definition.
The property value.
Implementation
bool TryGetValue<T>(ExtendedPropertyDefinition propertyDefinition,
OutParam<T> propertyValueOut) {
ExtendedProperty? extendedProperty = null;
OutParam<ExtendedProperty> extendedPropertyOut =
new OutParam<ExtendedProperty>();
if (this._TryGetProperty(propertyDefinition, extendedPropertyOut)) {
extendedProperty = extendedPropertyOut.param;
// todo ("implement runtimeType check")
// if (T.runtimeType is propertyDefinition.Type) {
// String errorMessage = String.format(
// "Property definition type '%s' and type parameter '%s' aren't compatible.",
// propertyDefinition.getType().getSimpleName(),
// cls.getSimpleName());
// throw new ArgumentException(errorMessage, "propertyDefinition");
// }
propertyValueOut.param = extendedProperty!.Value as T?;
return true;
} else {
propertyValueOut.param = null;
return false;
}
// ExtendedProperty extendedProperty;
// if (this.TryGetProperty(propertyDefinition, out extendedProperty))
// {
// // Verify that the type parameter and property definition's type are compatible.
// if (!typeof(T).IsAssignableFrom(propertyDefinition.Type))
// {
// String errorMessage = string.Format(
// Strings.PropertyDefinitionTypeMismatch,
// EwsUtilities.GetPrintableTypeName(propertyDefinition.Type),
// EwsUtilities.GetPrintableTypeName(typeof(T)));
// throw new ArgumentException(errorMessage, "propertyDefinition");
// }
//
// propertyValue = (T)extendedProperty.Value;
// return true;
// }
// else
// {
// propertyValue = default(T);
// return false;
// }
}