fastCSharp/setup/cSharp/template/indexSerialize.cs

(开头部分) 29KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using fastCSharp;

namespace fastCSharp.setup.cSharp.template
{
    class indexSerialize : pub
    {
        #region PART CLASS
        /*NOTE*/
        public partial class /*NOTE*/@TypeNameDefinition : /*NOTE*/copy.TypeNameDefinition, /*NOTE*/fastCSharp.setup.cSharp.indexSerialize.ISerialize<@type.FullName/**/.memberMap>
        {
            #region NOTE
            static fastCSharp.setup.cSharp.indexSerialize Attribute = null;
            const int MemberCount = 0;
            #endregion NOTE
            #region PART BODY
#pragma warning disable 108
            /// <summary>
            /// 序列化
            /// </summary>
            private unsafe sealed class serializer : fastCSharp.setup.cSharp.indexSerialize.serializer
            {
                /// <summary>
                /// 序列化
                /// </summary>
                /// <param name="stream">序列化流</param>
                public serializer(unmanagedStream stream) : base(@Attribute.IsReferenceMember, stream) { }
                /// <summary>
                /// 对象序列化
                /// </summary>
                /// <param name="value">对象</param>
                /// <param name="memberMap">成员位图</param>
                #region IF type.IsNull
                /// <param name="isPoint">是否记录历史指针</param>
                #endregion IF type.IsNull
                public void Serialize(@type.FullName value, @type.FullName/**/.memberMap memberMap/*IF:Attribute.IsReferenceMember*//*IF:type.IsNull*/, bool isPoint/*IF:type.IsNull*//*IF:Attribute.IsReferenceMember*/)
                {
                    #region IF Attribute.IsReferenceMember
                    #region IF type.IsNull
                    if (isPoint) points[value] = 0;
                    #endregion IF type.IsNull
                    #endregion IF Attribute.IsReferenceMember
                    fastCSharp.unmanagedStream.unsafer unsafeStream = dataStream.Unsafer;
                    if (memberMap.IsDefault)
                    {
                        #region LOOP Members
                        #region NAME SerializeReference
                        #region IF MemberType.IsMemberSerialize
                        #region IF MemberType.SerializeType.IsNull
                        if (/*NOT:MemberType.IsSerializeType*/(@MemberType.SerializeType.FullName)/*NOT:MemberType.IsSerializeType*/value.@MemberName == null)
                        {
                            dataStream.PrepLength(sizeof(int) + sizeof(int));
                            *(int*)(write = dataStream.Data + dataStream.Length) = @MemberIndex;
                            *(int*)(write + sizeof(int)) = sizeof(int);
                            unsafeStream.AddLength(sizeof(int) + sizeof(int));
                        }
                        else
                        #endregion IF MemberType.SerializeType.IsNull
                        {
                            dataStream.PrepLength(sizeof(int) + sizeof(int) + sizeof(@MemberType.SerializeType.StructNotNullType));
后面还有 376 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。