在C#运行时创建一个marhsalled对象

时间:2016-09-13 17:51:16

标签: c# marshalling

我有一个班级:

public class NormalClass
{
    public float FloatValue1 {get;set;}
    public float FloatValue2 {get;set;}
    public Boolean BoolValue1 {get;set;}
    public Boolean BoolValue2 {get;set;}
    public TimeSpan milliseconds1 {get;set;}
    public TimeSpan milliseconds2 {get;set;}
    public String StringValue {get;set;}
}

除了创建此类的实例外。我需要创建这个类的marhalled版本的另一个实例。

[StructLayout(LayoutKind.Sequential, Pack = 0)]
public class MarshalledClass
{
    public float FloatValue1;
    public float FloatValue2;
    [MarshalAs(UnmanagedType.I1)]
    public Boolean BoolValue1;
    [MarshalAs(UnmanagedType.I1)]
    public Boolean BoolValue2;
    public int milliseconds1;
    public int milliseconds2;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
    public String StringValue;
}

cource我也不想创建同一个类的两个定义,其中一个是正常的,另一个是编组的。 相反,我想创建普通类,然后在运行时编组一个新对象。这可能吗?

0 个答案:

没有答案