C#怎么将一个只有各种公共属性的类转换成结构体struct

C#如何将一个只有各种公共属性的类转换成结构体struct?
RT,假设有N个类。每个类的结构都类似于如下
public class a
{
public string a{get;set;}
public int b{get;set;}
.......
public float c{get;set;}
}


如何将这个类转换成

public struct a
{
public string a;
public int b;
.......
public float c;
}


以上转换需要在程序运行的过程中转换。求各位指点迷津啊!
------解决方案--------------------
这个没有直接的办法,一般借助automapper,emitmapper去自动映射(属性名一样可以自动映射,属性不一样需要创建映射规则)

ps:你为啥要赚结构体呢,转json class可以直接转啊,net4有现成的类,当然你可以可以用一个比较优秀的第三方类Newtonsoft.Json完成(个人建议这个,这类写的还是停优秀滴,起码正常起码可以直接用,不用担心循环引用问题)

至于加密这个事情,你自己干,俺们不说啥了
------解决方案--------------------

Newtonsoft.Json.JsonConvert.SerializeObject(data) //直接用这个类就可以转换为json对象了

------解决方案--------------------
Newtonsoft可以序列化任意类型到json.不管他是类还是结构体。甚至是匿名类型,不管其中是属性还是字段。不管是数组还是序列。
LZ这种问题,建议直接报需求。而不要自己假定一个解方案,再去问这个方案怎么实现。
比如说,你女朋友问你要天上的月亮,你跑来问怎样才能造飞船,而事实上只要一盆水就够了。

------解决方案--------------------
fastCSharp
            asc ac = new asc();
            ac.i = 5;
            ac.s = "实验";
            pub p = new pub();
            p.command = "shiyan";
            p.obj = ac;
            p.conditions = "试验";
            Console.WriteLine(fastCSharp.setup.cSharp.json.toJson.Get(p));

------解决方案--------------------
引用:
Quote: 引用:

奇怪我这里DataContractJsonSerializer 也可以啊,实体类和上面的一样



            using (MemoryStream stream1 = new MemoryStream())
            {
                DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(ClassOuter));

                ser.WriteObject(stream1, outer);

                stream1.Position = 0;
                using (StreamReader sr = new StreamReader(stream1))
                {
                    string result1 = sr.ReadToEnd();
                }
                
            }



结果也是
{"classA":{"a":"aaa","b":10,"c":9.99},"d":20}


引用:
改成
    public class ClassOuter
    {
        public object classA { get; set; }
        public int d { get; set; }
    }

后,Json.net版本(8楼的)没有问题,你可以试一下。


我把代码和报错都放上来了

public class asc
    {
        public int i{get;set;}
        public string s{get;set;}
    }
    public class pub
    {
        public string command
        {
            get;
            set;
        }
        public object obj
        {
            get;
            set;
        }
        public string conditions
        {
            get;
            set;
        }