0

このソリューションを、Person オブジェクトの代わりに、GetJSON メソッドが DataContract 属性を持つジェネリック型を受け入れるジェネリック ソリューションとして作成したいと考えています。誰かがそれを行う方法を説明できますか。

ベースコードはこちら

namespace TestDataContractJsonSerializer
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.IO;
using System.Runtime.Serialization.Json;

    public class Program
    {
        public static void Main(string[] args)
        {

            List<Person> persons = new List<Person> { new Person("Person1"), new Person("Person2") };

            var strJSON = from p in persons select GetJSON(p);
            Console.WriteLine("In JSON Format: ");

            foreach (string str in strJSON)
            {
                Console.WriteLine(" {0}", str); 
            }
            Console.ReadKey();
        }

        private static string GetJSON(Person p)
        {
            if (p != null)
            {
                MemoryStream stream = new MemoryStream();
                DataContractJsonSerializer dataContractJsonSerializer = new DataContractJsonSerializer(typeof(Person));
                dataContractJsonSerializer.WriteObject(stream, p);
                stream.Position = 0;
                StreamReader sr = new StreamReader(stream);
                return sr.ReadToEnd();
            }

            return string.Empty;


        }
    }

    [DataContract]
    public class Person
    {

        public Person(string name)
        {
            this.Name = name;
        }
        [DataMember]
        public string Name { get; private set; }
    }
}
4

1 に答える 1