Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }