/// <summary> /// Converts to serializable. /// </summary> /// <param name="memberMemberBinding">The memberMemberBindingRepresentation.</param> /// <returns> /// Serializable version. /// </returns> public static MemberMemberBindingRepresentation ToRepresentation( this MemberMemberBinding memberMemberBinding) { if (memberMemberBinding == null) { throw new ArgumentNullException(nameof(memberMemberBinding)); } var type = memberMemberBinding.Member.DeclaringType.ToRepresentation(); var memberInfoRepresentation = memberMemberBinding.Member.ToRepresentation(); var bindings = memberMemberBinding.Bindings.ToRepresentation(); var result = new MemberMemberBindingRepresentation(type, memberInfoRepresentation, bindings); return(result); }
/// <summary> /// From the serializable. /// </summary> /// <param name="memberMemberBindingRepresentation">The memberMemberBindingRepresentation.</param> /// <returns> /// Converted version. /// </returns> public static MemberMemberBinding FromRepresentation( this MemberMemberBindingRepresentation memberMemberBindingRepresentation) { if (memberMemberBindingRepresentation == null) { throw new ArgumentNullException(nameof(memberMemberBindingRepresentation)); } var type = memberMemberBindingRepresentation.Type.ResolveFromLoadedTypes(); var member = type.GetMembers().Single(_ => _.ToRepresentation().Equals(memberMemberBindingRepresentation.MemberInfo)); var bindings = memberMemberBindingRepresentation.Bindings.FromRepresentation(); var result = Expression.MemberBind(member, bindings); return(result); }