❔ Losing bytes when delivering dynamic object via RabbitMQ

Hey there got a bit of a complex problem.
Got this code:
public static object ToDynamicClass(this ExpandoObject expando)
{
    AssemblyName assemblyName = new AssemblyName("DynamicAssembly");
    AssemblyBuilder assemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.Run);
    ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule("DynamicModule");
    TypeBuilder typeBuilder = moduleBuilder.DefineType("DynamicType", TypeAttributes.Public);

    foreach (var kvp in expando)
    {
        Type type = kvp.Value?.GetType() ?? typeof(object);
        FieldBuilder field = typeBuilder.DefineField("_" + kvp.Key, type, FieldAttributes.Private);
        PropertyBuilder property = typeBuilder.DefineProperty(kvp.Key, PropertyAttributes.HasDefault, type, null);

        MethodAttributes getSetAttr = MethodAttributes.Public | MethodAttributes.SpecialName | MethodAttributes.HideBySig;

        MethodBuilder currGetPropMthdBldr = typeBuilder.DefineMethod("get_" + kvp.Key, getSetAttr, type, Type.EmptyTypes);
        ILGenerator currGetIL = currGetPropMthdBldr.GetILGenerator();
        currGetIL.Emit(OpCodes.Ldarg_0);
        currGetIL.Emit(OpCodes.Ldfld, field);
        currGetIL.Emit(OpCodes.Ret);

//Some code removed because of character limit

        property.SetGetMethod(currGetPropMthdBldr);
        property.SetSetMethod(currSetPropMthdBldr);
    }

    Type objType = typeBuilder.CreateType();

    object obj = Activator.CreateInstance(objType);
    foreach (var kvp in expando)
    {
        objType.GetProperty(kvp.Key)?.SetValue(obj, kvp.Value);
    }

    return obj;
}

Before when i tried to send the ExpandoObj itself all worked well.
Now Im sending a lift of objects the above methods produces using rabbitmq.
when i seralize i got a 1500 bytes messege size, when i recive the messege its only 120 bytes.
Any ideas what could be wrong?
Was this page helpful?