/// <summary> /// Converts to serializable. /// </summary> /// <param name="memberListBinding">The member list binding.</param> /// <returns> /// Serializable version. /// </returns> public static MemberListBindingRepresentation ToRepresentation( this MemberListBinding memberListBinding) { if (memberListBinding == null) { throw new ArgumentNullException(nameof(memberListBinding)); } var type = memberListBinding.Member.DeclaringType.ToRepresentation(); var memberInfoRepresentation = memberListBinding.Member.ToRepresentation(); var initializers = memberListBinding.Initializers.ToRepresentation(); var result = new MemberListBindingRepresentation(type, memberInfoRepresentation, initializers); return(result); }
/// <summary> /// From the serializable. /// </summary> /// <param name="memberListBindingRepresentation">The memberListBindingRepresentation.</param> /// <returns> /// Converted version. /// </returns> public static MemberListBinding FromRepresentation( this MemberListBindingRepresentation memberListBindingRepresentation) { if (memberListBindingRepresentation == null) { throw new ArgumentNullException(nameof(memberListBindingRepresentation)); } var type = memberListBindingRepresentation.Type.ResolveFromLoadedTypes(); var member = type.GetMembers().Single(_ => _.ToRepresentation().Equals(memberListBindingRepresentation.MemberInfo)); var initializers = memberListBindingRepresentation.Initializers.FromRepresentation(); var result = Expression.ListBind(member, initializers); return(result); }