/// <summary> /// Sets the property value and unwraps it from a DTO wrapper if necessary. /// </summary> public static bool TrySetPropertyValue <T>(this EdmStructuredObject targetObject, string propertyName, T value) { if (value != null) { object unwrappedValue; if (PropertyValueWrappingHelper.TryUnwrapEdmObject(value, out unwrappedValue)) { return(targetObject.TrySetPropertyValue(propertyName, unwrappedValue)); } } return(targetObject.TrySetPropertyValue(propertyName, value)); }
/// <summary> /// Gets the property value and wraps it in a DTO wrapper if necessary. /// </summary> public static bool TryGetPropertyValue <T>(this IEdmStructuredObject targetObject, string propertyName, out T value) { object internalValue; if (targetObject.TryGetPropertyValue(propertyName, out internalValue)) { // wrap by dto wrapper, if applicable object wrappedValue; if (PropertyValueWrappingHelper.TryWrapEdmObject(internalValue, out wrappedValue)) { internalValue = wrappedValue; } // now cast to desired type if (internalValue is T) { value = (T)internalValue; return(true); } } value = default(T); return(false); }