Ejemplo n.º 1
0
        /// <summary>
        /// Builds a metadata for a member
        /// </summary>
        /// <returns></returns>
        public MemberMetadata Build()
        {
            var metadata = this._successorMetadataBuilder.Build();
            var result   = new MemberMetadata(metadata, this._memberInfo);
            MemberMetadataSerializer serializer;

            if (!this._isSkipped)
            {
                if (metadata.GetType().IsGenericType)
                {
                    serializer = (MemberMetadataSerializer)Activator.CreateInstance(typeof(MemberMetadataSerializer <>).MakeGenericType(
                                                                                        metadata.GetType().GetGenericArguments().First()), result);
                }
                else
                {
                    serializer = new MemberMetadataSerializer(result);
                }
            }
            else
            {
                serializer = new SkippedMemberMetadataSerializer(result);
            }
            result.SetSerializer(serializer);
            return(result);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Sets a serializer to use
 /// </summary>
 /// <param name="serializer">An instance of serializer to use</param>
 public void SetSerializer(MemberMetadataSerializer serializer)
 {
     this._serializer = serializer;
 }