static coder() { codes = new stringBuilder[Enum.GetMaxValue <auto.language>(-1) + 1]; for (int index = codes.Length; index != 0; codes[--index] = new stringBuilder()) { ; } }
public bool setEntity(string arg0, stringBuilder arg1) { setEntityRequest inValue = new setEntityRequest(); inValue.arg0 = arg0; inValue.arg1 = arg1; setEntityResponse retVal = ((ICoalesceDataService)(this)).setEntity(inValue); return(retVal.@return); }
public stringBuilder getText(stringBuilder t, int a) { stringBuilder get = new stringBuilder(); foreach (stringItem p in t) { if (p.index == a) { get.Add(new stringItem(p.sb, p.index)); } } return(get); }
private string abbr(string word) { if (word.Length <= 2) { return(word); } stringBuilder sb = new stringBuilder(); sb.Append(word[0]); sb.Append(word.Length - 2); sb.Append(word[word.Length - 1]); return(sb.Tostring()); }
/// <summary> /// 安装完成处理 /// </summary> protected override void onCreated() { if (methodIndexs.Count != 0) { IsAllType = true; foreach (list <methodIndex> methods in methodIndexs.group(value => value.TypeAttribute.ServiceName).Values) { MethodIndexs = methods.ToArray(); type = MethodIndexs[0].MethodType; Attribute = MethodIndexs[0].TypeAttribute; ServiceAttribute = MethodIndexs[0].ServiceAttribute; _code_.Empty(); create(false); fastCSharp.setup.cSharp.coder.Add(@" namespace " + AutoParameter.DefaultNamespace + "." + serverPart + @" { " + _partCodes_["SERVER"] + @" }"); string clientCode = @" namespace " + AutoParameter.DefaultNamespace + "." + clientPart + @" { " + _partCodes_["CLIENT"] + @" }"; if (ServiceAttribute.IsSegmentation) { stringBuilder clientCallCode = clientCallCodes[Attribute.ServiceName]; clientCallCode.Add(clientCode); string fileName = AutoParameter.ProjectPath + AutoParameter.DefaultNamespace + ".tcpCall." + Attribute.ServiceName + ".client.cs"; clientCode = fastCSharp.setup.cSharp.coder.WarningCode + clientCallCode.ToString(); if (fastCSharp.setup.cSharp.coder.WriteFile(fileName, clientCode)) { if (ServiceAttribute.ClientSegmentationCopyPath != null) { string copyFileName = ServiceAttribute.ClientSegmentationCopyPath + AutoParameter.DefaultNamespace + ".tcpCall." + Attribute.ServiceName + ".client.cs"; if (!fastCSharp.setup.cSharp.coder.WriteFile(copyFileName, clientCode)) { fastCSharp.setup.error.Add(copyFileName + " 写入失败"); } } fastCSharp.setup.error.Message(fileName + " 被修改"); } } else { fastCSharp.setup.cSharp.coder.Add(clientCode); } } } }
protected string CalculateAccessKey(string accountId, string apiKey) { MD5 md5 = System.Security.Cryptography.MD5.Create(); byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(accountId + apiKey); byte[] hashBytes = md5.ComputeHash(inputBytes); // Convert the byte array to hexadecimal string stringBuilder sb = new stringBuilder(); for (int i = 0; i < hashBytes.Length; i++) { sb.Append(hashBytes[i].Tostring("X2")); } return(sb.Tostring()); }
/// <summary> /// 添加代码 /// </summary> /// <param name="code">代码,null表示截断字符串</param> protected virtual void pushCode(string code) { if (code != null) { pushCodes.Add(code); } else { code = pushCodes.ToString(); if (code.Length != 0) { this.code.Append(@" _code_.Add(@""", code.Replace(@"""", @""""""), @""");"); } pushCodes.Empty(); } }
/// <summary> /// 安装下一个类型 /// </summary> protected override void NextCreate() { if (!serviceAttributes.TryGetValue(Attribute.ServiceName, out ServiceAttribute)) { serviceAttributes.Add(Attribute.ServiceName, ServiceAttribute = tcpServer.GetConfig(Attribute.ServiceName)); } if (Attribute.VerifyType != null) { ServiceAttribute.VerifyType = Attribute.VerifyType; } int methodIndex = methodIndexs.Count; MethodIndexs = methodInfo.GetMethods <tcpCall>(type, Attribute.filter, false, Attribute.IsAttribute, Attribute.IsBaseTypeAttribute, Attribute.IsInheritAttribute) .getArray(value => new methodIndex { Method = value, MethodIndex = methodIndex++, MethodType = type, ServiceAttribute = ServiceAttribute, TypeAttribute = Attribute, IsTypeGenericParameterName = type.Type.IsGenericType }); methodIndexs.Add(MethodIndexs); if (ServiceAttribute.IsSegmentation) { stringBuilder clientCallCode; if (!clientCallCodes.TryGetValue(Attribute.ServiceName, out clientCallCode)) { clientCallCodes.Add(Attribute.ServiceName, clientCallCode = new stringBuilder()); } definition definition = new definition(type, true, false); _code_.Empty(); create(false); fastCSharp.setup.cSharp.coder.Add(GetType(), CodeType.Type, definition.Start + _partCodes_["SERVERCALL"] + definition.End); clientCallCode.Add(definition.Start + _partCodes_["CLIENTCALL"] + definition.End); } else { create(true); } }
/// <summary> /// 生成类定义字符串 /// </summary> /// <returns>类定义字符串</returns> public override string ToString() { typeDefinition = new fastCSharp.code.cSharper.definition.cSharp(Type, true, true); (coder = new coder(Parameter, Type, Auto.Language)).skinEnd(coder.getNode(Auto.GetFileName(Type))); (codeBuilder = new stringBuilder()).Append(@" ", typeDefinition.Start, @" /// <summary> /// 生成代码 /// </summary> /// <param name=""isOut"">是否输出代码</param> protected override void create(bool _isOut_) { if (outStart(fastCSharp.code.auto.language.", Auto.Language.ToString(), @", _isOut_)) { "); switch (Auto.Language) { case auto.language.JavaScript: case auto.language.TypeScript: return(javaScript()); default: return(cSharp()); } }
/// <summary> /// 输出代码 /// </summary> public static void Output(auto.parameter parameter) { stringBuilder[] builders = new stringBuilder[codes.Length]; for (int index = codes.Length; index != 0;) { stringBuilder builder = codes[--index]; if (builder.Count != 0) { builders[index] = builder; codes[index] = new stringBuilder(); } auto.language language = (auto.language)(byte) index; switch (language) { case auto.language.JavaScript: case auto.language.TypeScript: if (builders[index] != null) { error.Add("生成了未知的 " + language + " 代码。"); } break; } } stringBuilder rememberCodeBuilder = null; if (rememberCodes.Count != 0) { rememberCodeBuilder = rememberCodes; rememberCodes = new stringBuilder(); } codeTypes.Clear(); error.ThrowError(); string message = string.Empty; for (int index = builders.Length; index != 0;) { stringBuilder builder = builders[--index]; if (builder != null) { switch (index) { case (int)auto.language.CSharp: string code = builder.ToString(), fastCSharpFileName = null, rememberFileName = null; bool isFastCSharp = false, isRemember = false; if (code.length() != 0) { string fileName = parameter.ProjectPath + (fastCSharpFileName = "{" + parameter.DefaultNamespace + "}." + pub.fastCSharp + ".cs"); if (WriteFile(fileName, WarningCode + code + FileEndCode)) { isFastCSharp = true; message = fileName + " 被修改"; } } if (rememberCodeBuilder != null && (code = rememberCodeBuilder.ToString()).length() != 0) { string fileName = parameter.ProjectPath + (rememberFileName = "{" + parameter.DefaultNamespace + "}.remember." + pub.fastCSharp + ".cs"); if (WriteFile(fileName, WarningCode + code + FileEndCode)) { isRemember = true; message += @" " + fileName + " 被修改"; } } if (parameter.IsFastCSharp && (isFastCSharp | isRemember)) { string projectFile = parameter.AssemblyPath + parameter.ProjectName + ".csproj"; if (File.Exists(projectFile)) { string projectXml = File.ReadAllText(projectFile, System.Text.Encoding.UTF8); if (isFastCSharp) { fastCSharpFileName = @"<Compile Include=""" + fastCSharpFileName + @""" />"; } if (isRemember) { rememberFileName = @"<Compile Include=""" + rememberFileName + @""" />"; } int fileIndex; if (isFastCSharp && (fileIndex = projectXml.IndexOf(fastCSharpFileName)) != -1) { if (isRemember && projectXml.IndexOf(rememberFileName) == -1) { projectXml = projectXml.Insert(fileIndex + fastCSharpFileName.Length, @" " + rememberFileName); MoveFile(projectFile, projectXml); } break; } if (isRemember && (fileIndex = projectXml.IndexOf(rememberFileName)) != -1) { if (isFastCSharp && projectXml.IndexOf(fastCSharpFileName) == -1) { projectXml = projectXml.Insert(fileIndex + rememberFileName.Length, @" " + fastCSharpFileName); MoveFile(projectFile, projectXml); } break; } string csFileName = @".cs"" /> "; if ((fileIndex = projectXml.IndexOf(csFileName)) != -1) { if (isFastCSharp) { fastCSharpFileName += @" "; if (isRemember) { fastCSharpFileName += rememberFileName + @" "; } } else { fastCSharpFileName = rememberFileName + @" "; } projectXml = projectXml.Insert(fileIndex + csFileName.Length, fastCSharpFileName); MoveFile(projectFile, projectXml); } } } break; } } } if (message.Length != 0) { fastCSharp.log.Default.ThrowReal(message, new System.Diagnostics.StackFrame(), false); } }
/// <summary> /// 生成代码 /// </summary> /// <param name="isOut">是否输出代码</param> protected override void create(bool isOut) { fastCSharp.setup.cSharp.cSharper.definition definition = isOut ? outStart() : null; if (!isOut || definition != null) { _if_ = false; if (!(bool)IsAllType) { _if_ = true; } if (_if_) { stringBuilder _PART_SERVERCALL_ = _code_; _code_ = new stringBuilder(); _code_.Add(@" "); _code_.Add(TypeNameDefinition); _code_.Add(@" {"); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { { System.Type _value2_ = _value1_.Type; if (_value2_ != null) { if (_value2_.IsGenericType) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" [fastCSharp.setup.cSharp.tcpCall(IsGenericTypeServerMethod = true, IsIgnore = true)]"); } _code_.Add(@" internal static class "); _code_.Add(GenericTypeServerName); _code_.Add(@" {"); { fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex[] _value1_ = default(fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex[]); _value1_ = MethodIndexs; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex _value2_ in _value1_) { _code_.Add(@" public static "); { fastCSharp.setup.methodInfo _value3_ = default(fastCSharp.setup.methodInfo); _value3_ = _value2_.Method; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { { fastCSharp.setup.memberType _value4_ = _value3_.ReturnType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@" "); _code_.Add(_value2_.MethodIndexGenericName); _code_.Add(@"("); { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); { fastCSharp.setup.methodInfo _value4_ = _value2_.Method; if (_value4_ != null) { _value3_ = _value4_.Parameters; } } if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _code_.Add(_value4_.ParameterTypeRefName); _code_.Add(@" "); _code_.Add(_value4_.ParameterJoinName); ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _code_.Add(@") {"); { fastCSharp.setup.methodInfo _value3_ = default(fastCSharp.setup.methodInfo); _value3_ = _value2_.Method; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(@" "); _if_ = false; if (_value3_.IsReturn) { _if_ = true; } if (_if_) { _code_.Add(@" return "); } { fastCSharp.setup.memberType _value4_ = type; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } _code_.Add(@"/**/."); _code_.Add(_value3_.StaticMethodGenericName); _code_.Add(@"("); { fastCSharp.setup.parameterInfo[] _value4_ = default(fastCSharp.setup.parameterInfo[]); _value4_ = _value3_.Parameters; if (_value4_ != null) { int _loopIndex4_ = _loopIndex_, _loopCount4_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value4_.Length; foreach (fastCSharp.setup.parameterInfo _value5_ in _value4_) { _code_.Add(_value5_.ParameterJoinRefName); ++_loopIndex_; } _loopIndex_ = _loopIndex4_; _loopCount_ = _loopCount4_; } } _code_.Add(@");"); } } _code_.Add(@" }"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MethodType; if (_value3_ != null) { { System.Type _value4_ = _value3_.Type; if (_value4_ != null) { if (!(bool)_value4_.IsGenericType) { _if_ = true; } } } } } if (_if_) { _if_ = false; { fastCSharp.setup.methodInfo _value3_ = _value2_.Method; if (_value3_ != null) { { System.Reflection.MethodInfo _value4_ = _value3_.Method; if (_value4_ != null) { if (_value4_.IsGenericMethod) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" public static readonly System.Reflection.MethodInfo "); _code_.Add(_value2_.GenericMethodInfoName); _code_.Add(@";"); } } ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { { System.Type _value2_ = _value1_.Type; if (_value2_ != null) { if (!(bool)_value2_.IsGenericType) { _if_ = true; } } } } } if (_if_) { _if_ = false; if (IsAnyGenericMethod) { _if_ = true; } if (_if_) { _code_.Add(@" static "); _code_.Add(GenericTypeServerName); _code_.Add(@"() { System.Collections.Generic.Dictionary<fastCSharp.setup.cSharp.tcpBase.genericMethod, System.Reflection.MethodInfo> genericMethods = fastCSharp.setup.cSharp.tcpCall.GetGenericMethods(typeof("); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"));"); { fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex[] _value1_ = default(fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex[]); _value1_ = MethodIndexs; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex _value2_ in _value1_) { _if_ = false; { fastCSharp.setup.methodInfo _value3_ = _value2_.Method; if (_value3_ != null) { { System.Reflection.MethodInfo _value4_ = _value3_.Method; if (_value4_ != null) { if (_value4_.IsGenericMethod) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" "); _code_.Add(_value2_.GenericMethodInfoName); _code_.Add(@" = "); { fastCSharp.setup.methodInfo _value3_ = default(fastCSharp.setup.methodInfo); _value3_ = _value2_.Method; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(@"genericMethods[new fastCSharp.setup.cSharp.tcpBase.genericMethod("""); _code_.Add(_value3_.MethodName); _code_.Add(@""", "); { fastCSharp.setup.memberType[] _value4_ = _value3_.GenericParameters; if (_value4_ != null) { _code_.Add(_value4_.Length.ToString()); } } { fastCSharp.setup.parameterInfo[] _value4_ = default(fastCSharp.setup.parameterInfo[]); _value4_ = _value3_.Parameters; if (_value4_ != null) { int _loopIndex4_ = _loopIndex_, _loopCount4_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value4_.Length; foreach (fastCSharp.setup.parameterInfo _value5_ in _value4_) { _code_.Add(@", """); _code_.Add(_value5_.ParameterRef); { fastCSharp.setup.memberType _value6_ = _value5_.ParameterType; if (_value6_ != null) { _code_.Add(_value6_.FullName); } } _code_.Add(@""""); ++_loopIndex_; } _loopIndex_ = _loopIndex4_; _loopCount_ = _loopCount4_; } } _code_.Add(@")]"); } } _code_.Add(@";"); } ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _code_.Add(@" }"); } } _code_.Add(@" } }"); _partCodes_["SERVERCALL"] = _code_.ToString(); _code_ = _PART_SERVERCALL_; _code_.Add(_partCodes_["SERVERCALL"]); stringBuilder _PART_CLIENTCALL_ = _code_; _code_ = new stringBuilder(); _code_.Add(@" public static partial class tcpCall { "); _code_.Add(TypeNameDefinition); _code_.Add(@" {"); { fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex[] _value1_ = default(fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex[]); _value1_ = MethodIndexs; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex _value2_ in _value1_) { _code_.Add(@" private static readonly byte[] "); _code_.Add(_value2_.MethodCommandName); _code_.Add(@" = fastCSharp.setup.cSharp.tcpBase.GetMethodKeyNameCommand("""); { fastCSharp.setup.methodInfo _value3_ = _value2_.Method; if (_value3_ != null) { _code_.Add(_value3_.MethodKeyFullName); } } _code_.Add(@""");"); _if_ = false; { fastCSharp.setup.cSharp.tcpCall _value3_ = _value2_.Attribute; if (_value3_ != null) { if (_value3_.IsClientSynchronous) { _if_ = true; } } } if (_if_) { _code_.Add(@" public static "); { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@" "); { fastCSharp.setup.methodInfo _value3_ = default(fastCSharp.setup.methodInfo); _value3_ = _value2_.Method; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(_value3_.MethodGenericName); } } _code_.Add(@"("); { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); _value3_ = _value2_.MethodParameters; if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _code_.Add(_value4_.ParameterTypeRefName); _code_.Add(@" "); _code_.Add(_value4_.ParameterJoinName); ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _code_.Add(@") {"); _if_ = false; if (!(bool)_value2_.IsAsynchronousCallback) { _if_ = true; } if (_if_) { _if_ = false; { fastCSharp.setup.cSharp.tcpServer _value3_ = _value2_.ServiceAttribute; if (_value3_ != null) { if (!(bool)_value3_.IsSegmentation) { _if_ = true; } } } if (_if_) { _code_.Add(@" if ("); { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ClientPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/.defaultTcpServer.IsServer) { "); _if_ = false; if (_value2_.MethodIsReturn) { _if_ = true; } if (_if_) { _code_.Add(@" return "); } { fastCSharp.setup.memberType _value3_ = type; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@"/**/."); _code_.Add(GenericTypeServerName); { fastCSharp.setup.methodInfo _value3_ = default(fastCSharp.setup.methodInfo); _value3_ = _value2_.Method; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(@"."); _code_.Add(_value2_.MethodIndexGenericName); } } _code_.Add(@"("); { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); _value3_ = _value2_.MethodParameters; if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _code_.Add(_value4_.ParameterJoinRefName); ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _code_.Add(@"); }"); } } _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { _code_.Add(@" "); { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(@" "); _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ParameterPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/."); _code_.Add(_value2_.InputParameterTypeName); _code_.Add(@" _inputParameter_ = new "); { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ParameterPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/."); _code_.Add(_value2_.InputParameterTypeName); _code_.Add(@" {"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MethodType; if (_value3_ != null) { { System.Type _value4_ = _value3_.Type; if (_value4_ != null) { if (_value4_.IsGenericType) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" "); _code_.Add(TypeGenericParameterName); _code_.Add(@" = typeof("); { fastCSharp.setup.memberType _value3_ = type; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@"/**/."); _code_.Add(GenericTypeServerName); _code_.Add(@"),"); } _if_ = false; { fastCSharp.setup.methodInfo _value3_ = _value2_.Method; if (_value3_ != null) { { System.Reflection.MethodInfo _value4_ = _value3_.Method; if (_value4_ != null) { if (_value4_.IsGenericMethod) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" "); _code_.Add(GenericParameterTypeName); _code_.Add(@" = fastCSharp.setup.cSharp.tcpBase.GetGenericParameters(0"); { fastCSharp.setup.memberType[] _value3_ = default(fastCSharp.setup.memberType[]); { fastCSharp.setup.methodInfo _value4_ = _value2_.Method; if (_value4_ != null) { _value3_ = _value4_.GenericParameters; } } if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.memberType _value4_ in _value3_) { _code_.Add(@", typeof("); _code_.Add(_value4_.FullName); _code_.Add(@")"); ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _code_.Add(@"),"); } _if_ = false; if (_value2_.IsGenericParameterCallback) { _if_ = true; } if (_if_) { _code_.Add(@" "); _code_.Add(_value2_.ReturnTypeName); _code_.Add(@" = typeof("); { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@"),"); } { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); _value3_ = _value2_.MethodParameters; if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _if_ = false; if (!(bool)_value4_.IsOut) { _if_ = true; } if (_if_) { _code_.Add(@" "); _code_.Add(_value4_.ParameterName); _code_.Add(@" = "); _code_.Add(_value4_.ParameterName); _code_.Add(@","); } ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _code_.Add(@" };"); } _if_ = false; if (_value2_.IsOutputParameter) { _if_ = true; } if (_if_) { _code_.Add(@" "); { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(@" "); _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ParameterPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/."); _code_.Add(_value2_.OutputParameterTypeName); _code_.Add(@" _outputParameter_ = new "); { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ParameterPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/."); _code_.Add(_value2_.OutputParameterTypeName); _code_.Add(@"(); if ("); { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ClientPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/.DefaultPool.Get"); _if_ = false; if (_value2_.IsAnyParameter) { _if_ = true; } if (_if_) { _code_.Add(@"<"); _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ParameterPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/."); _code_.Add(_value2_.InputParameterTypeName); _code_.Add(@", "); } { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ParameterPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/."); _code_.Add(_value2_.OutputParameterTypeName); _code_.Add(@">"); } _code_.Add(@"("); _code_.Add(_value2_.MethodCommandName); _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { _code_.Add(@", _inputParameter_"); } _code_.Add(@", _outputParameter_)) {"); { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); _value3_ = _value2_.MethodParameters; if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _if_ = false; if (_value4_.IsRefOrOut) { _if_ = true; } if (_if_) { _code_.Add(@" "); _code_.Add(_value4_.ParameterName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.methodInfo _value5_ = _value2_.Method; if (_value5_ != null) { { System.Reflection.MethodInfo _value6_ = _value5_.Method; if (_value6_ != null) { if (_value6_.IsGenericMethod) { _if_ = true; } } } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value5_ = _value4_.ParameterType; if (_value5_ != null) { _code_.Add(_value5_.FullName); } } _code_.Add(@")"); } _code_.Add(@"_outputParameter_."); _code_.Add(_value4_.ParameterName); _code_.Add(@";"); } ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _code_.Add(@" return "); _if_ = false; if (_value2_.MethodIsReturn) { _if_ = true; } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { { System.Type _value4_ = _value3_.Type; if (_value4_ != null) { if (_value4_.IsGenericParameter) { _if_ = true; } } } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"_outputParameter_."); _code_.Add(_value2_.ReturnName); } _code_.Add(@"; }"); } _if_ = false; if (!(bool)_value2_.IsOutputParameter) { _if_ = true; } if (_if_) { _code_.Add(@" if ("); { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ClientPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/.DefaultPool.Call"); _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { _code_.Add(@"<"); { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ParameterPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/."); _code_.Add(_value2_.InputParameterTypeName); _code_.Add(@">"); } _code_.Add(@"("); _code_.Add(_value2_.MethodCommandName); _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { _code_.Add(@", _inputParameter_"); } _code_.Add(@")) return;"); } _code_.Add(@" throw new Exception(); }"); } _if_ = false; { fastCSharp.setup.cSharp.tcpCall _value3_ = _value2_.Attribute; if (_value3_ != null) { if (_value3_.IsClientAsynchronous) { _if_ = true; } } } if (_if_) { _code_.Add(@" public static fastCSharp.net.tcpClient "); { fastCSharp.setup.methodInfo _value3_ = default(fastCSharp.setup.methodInfo); _value3_ = _value2_.Method; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(_value3_.MethodGenericName); } } _code_.Add(@"(action<fastCSharp.setup.cSharp.tcpBase.asynchronousReturn"); _if_ = false; if (_value2_.MethodIsReturn) { _if_ = true; } if (_if_) { _code_.Add(@"<"); { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@">"); } _code_.Add(@"> _onReturn_"); { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); _value3_ = _value2_.MethodParameters; if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _code_.Add(@", "); { fastCSharp.setup.memberType _value5_ = _value4_.ParameterType; if (_value5_ != null) { _code_.Add(_value5_.FullName); } } _code_.Add(@" "); _code_.Add(_value4_.ParameterName); ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _code_.Add(@") { bool _isCall_ = false; try { fastCSharp.setup.cSharp.tcpCall.clientPool _client_ = "); { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ClientPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/.DefaultPool;"); _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { _code_.Add(@" "); { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(@" "); _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ParameterPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/."); _code_.Add(_value2_.InputParameterTypeName); _code_.Add(@" _inputParameter_ = new "); { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ParameterPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/."); _code_.Add(_value2_.InputParameterTypeName); _code_.Add(@" {"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MethodType; if (_value3_ != null) { { System.Type _value4_ = _value3_.Type; if (_value4_ != null) { if (_value4_.IsGenericType) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" "); _code_.Add(TypeGenericParameterName); _code_.Add(@" = typeof("); { fastCSharp.setup.memberType _value3_ = type; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@"/**/."); _code_.Add(GenericTypeServerName); _code_.Add(@"),"); } _if_ = false; { fastCSharp.setup.methodInfo _value3_ = _value2_.Method; if (_value3_ != null) { { System.Reflection.MethodInfo _value4_ = _value3_.Method; if (_value4_ != null) { if (_value4_.IsGenericMethod) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" "); _code_.Add(GenericParameterTypeName); _code_.Add(@" = fastCSharp.setup.cSharp.tcpBase.GetGenericParameters(0"); { fastCSharp.setup.memberType[] _value3_ = default(fastCSharp.setup.memberType[]); { fastCSharp.setup.methodInfo _value4_ = _value2_.Method; if (_value4_ != null) { _value3_ = _value4_.GenericParameters; } } if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.memberType _value4_ in _value3_) { _code_.Add(@", typeof("); _code_.Add(_value4_.FullName); _code_.Add(@")"); ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _code_.Add(@"),"); } _if_ = false; if (_value2_.IsGenericParameterCallback) { _if_ = true; } if (_if_) { _code_.Add(@" "); _code_.Add(_value2_.ReturnTypeName); _code_.Add(@" = typeof("); { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@"),"); } { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); _value3_ = _value2_.MethodParameters; if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _if_ = false; if (!(bool)_value4_.IsOut) { _if_ = true; } if (_if_) { _code_.Add(@" "); _code_.Add(_value4_.ParameterName); _code_.Add(@" = "); _code_.Add(_value4_.ParameterName); _code_.Add(@","); } ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _code_.Add(@" };"); } _if_ = false; if (_value2_.IsOutputParameter) { _if_ = true; } if (_if_) { _code_.Add(@" "); { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(@" "); _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ParameterPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/."); _code_.Add(_value2_.OutputParameterTypeName); _code_.Add(@" _outputParameter_ = new "); { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ParameterPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/."); _code_.Add(_value2_.OutputParameterTypeName); _code_.Add(@"(); _isCall_ = true;"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { { System.Type _value4_ = _value3_.Type; if (_value4_ != null) { if (_value4_.IsGenericParameter) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" return _client_.Get"); _if_ = false; if (_value2_.IsAnyParameter) { _if_ = true; } if (_if_) { _code_.Add(@"<"); _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ParameterPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/."); _code_.Add(_value2_.InputParameterTypeName); _code_.Add(@", "); } { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ParameterPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/."); _code_.Add(_value2_.OutputParameterGenericTypeName); _code_.Add(@">"); } _code_.Add(@"(new fastCSharp.setup.cSharp.tcpBase.asyncReturnGeneric<"); { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@", "); { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ParameterPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/."); _code_.Add(_value2_.OutputParameterGenericTypeName); _code_.Add(@"> { OnReturn = _onReturn_ }.CallOnReturn, "); _code_.Add(_value2_.MethodCommandName); _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { _code_.Add(@", _inputParameter_"); } _code_.Add(@", ("); { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ParameterPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/."); _code_.Add(_value2_.OutputParameterGenericTypeName); _code_.Add(@")(object)_outputParameter_);"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { { System.Type _value4_ = _value3_.Type; if (_value4_ != null) { if (!(bool)_value4_.IsGenericParameter) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" return _client_.Get"); _if_ = false; if (_value2_.IsAnyParameter) { _if_ = true; } if (_if_) { _code_.Add(@"<"); _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ParameterPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/."); _code_.Add(_value2_.InputParameterTypeName); _code_.Add(@", "); } { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ParameterPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/."); _code_.Add(_value2_.OutputParameterTypeName); _code_.Add(@">"); } _code_.Add(@"(new fastCSharp.setup.cSharp.tcpBase.asyncReturn<"); { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@", "); { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ParameterPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/."); _code_.Add(_value2_.OutputParameterTypeName); _code_.Add(@"> { OnReturn = _onReturn_ }.CallOnReturn, "); _code_.Add(_value2_.MethodCommandName); _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { _code_.Add(@", _inputParameter_"); } _code_.Add(@", _outputParameter_);"); } } _if_ = false; if (!(bool)_value2_.IsOutputParameter) { _if_ = true; } if (_if_) { _code_.Add(@" _isCall_ = true; return _client_.Call"); _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { _code_.Add(@"<"); { fastCSharp.setup.auto.parameter _value3_ = default(fastCSharp.setup.auto.parameter); _value3_ = AutoParameter; _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(_value3_.DefaultNamespace); } } _code_.Add(@"."); _code_.Add(ParameterPart); _code_.Add(@"/**/."); _code_.Add(ServiceName); _code_.Add(@"/**/."); _code_.Add(_value2_.InputParameterTypeName); _code_.Add(@">"); } _code_.Add(@"(new fastCSharp.setup.cSharp.tcpBase.asyncReturn { OnReturn = _onReturn_ }.CallOnReturn, "); _code_.Add(_value2_.MethodCommandName); _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { _code_.Add(@", _inputParameter_"); } _code_.Add(@");"); } _code_.Add(@" } catch (Exception _error_) { fastCSharp.log.Default.Add(_error_, null, false); } finally { if (!_isCall_) _onReturn_(new fastCSharp.setup.cSharp.tcpBase.asynchronousReturn"); _if_ = false; if (_value2_.MethodIsReturn) { _if_ = true; } if (_if_) { _code_.Add(@"<"); { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@">"); } _code_.Add(@"{ IsReturn = false }); } return null; }"); } ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _code_.Add(@" } }"); _partCodes_["CLIENTCALL"] = _code_.ToString(); _code_ = _PART_CLIENTCALL_; _code_.Add(_partCodes_["CLIENTCALL"]); } _code_.Add(@" "); _if_ = false; if (IsAllType) { _if_ = true; } if (_if_) { stringBuilder _PART_SERVER_ = _code_; _code_ = new stringBuilder(); _if_ = false; { fastCSharp.setup.cSharp.tcpServer _value1_ = ServiceAttribute; if (_value1_ != null) { if (!(bool)_value1_.IsAsynchronous) { _if_ = true; } } } if (_if_) { _code_.Add(@" /// <summary> /// TCP调用服务端 /// </summary> public class "); _code_.Add(ServiceName); _code_.Add(@" : fastCSharp.net.tcpServer { /// <summary> /// TCP调用服务端 /// </summary> /// <param name=""attribute"">TCP调用服务器端配置信息</param> /// <param name=""verify"">TCP验证实例</param> public "); _code_.Add(ServiceName); _code_.Add(@"(fastCSharp.setup.cSharp.tcpServer attribute = null, fastCSharp.setup.cSharp.tcpBase.ITcpVerify verify = null) : base(attribute ?? fastCSharp.setup.cSharp.tcpServer.GetConfig("""); _code_.Add(ServiceName); _code_.Add(@"""), verify"); _if_ = false; { fastCSharp.setup.cSharp.tcpServer _value1_ = ServiceAttribute; if (_value1_ != null) { if (_value1_.VerifyType != null) { _if_ = true; } } } if (_if_) { _code_.Add(@" ?? new "); _code_.Add(TcpVerifyType); _code_.Add(@"()"); } _code_.Add(@") { list<keyValue<hashBytes, keyValue<action<socket, int>, bool>>>.unsafer onCommands = new list<keyValue<hashBytes, keyValue<action<socket, int>, bool>>>("); { fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex[] _value1_ = MethodIndexs; if (_value1_ != null) { _code_.Add(_value1_.Length.ToString()); } } _code_.Add(@" + 1).Unsafer; onCommands.Add(new keyValue<hashBytes, keyValue<action<socket, int>, bool>>(closeCommandData, new keyValue<action<socket, int>, bool>(new action<socket, int>(close), false)));"); { fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex[] _value1_ = default(fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex[]); _value1_ = MethodIndexs; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex _value2_ in _value1_) { _code_.Add(@" onCommands.Add(new keyValue<hashBytes, keyValue<action<socket, int>, bool>>(formatMethodKeyName("""); { fastCSharp.setup.methodInfo _value3_ = _value2_.Method; if (_value3_ != null) { _code_.Add(_value3_.MethodKeyFullName); } } _code_.Add(@"""), new keyValue<action<socket, int>, bool>("); _code_.Add(_value2_.MethodIndexName); _code_.Add(@", "); _code_.Add(_value2_.IsInputParameter ? "true" : "false"); _code_.Add(@")));"); ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _code_.Add(@" this.onCommands = new staticDictionary<hashBytes, keyValue<action<socket, int>, bool>>(onCommands.List); }"); { fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex[] _value1_ = default(fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex[]); _value1_ = MethodIndexs; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex _value2_ in _value1_) { _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { _code_.Add(@" [fastCSharp.setup.cSharp.serialize(IsIgnore = true, IsObject = true, IsInterface = true)] internal class "); _code_.Add(_value2_.InputParameterTypeName); _code_.Add(@" : fastCSharp.setup.cSharp.serialize.ISerialize {"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MethodType; if (_value3_ != null) { { System.Type _value4_ = _value3_.Type; if (_value4_ != null) { if (_value4_.IsGenericType) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" public fastCSharp.setup.remoteType "); _code_.Add(TypeGenericParameterName); _code_.Add(@";"); } _if_ = false; { fastCSharp.setup.methodInfo _value3_ = _value2_.Method; if (_value3_ != null) { { System.Reflection.MethodInfo _value4_ = _value3_.Method; if (_value4_ != null) { if (_value4_.IsGenericMethod) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" public fastCSharp.setup.remoteType[] "); _code_.Add(GenericParameterTypeName); _code_.Add(@";"); } _if_ = false; if (_value2_.IsGenericParameterCallback) { _if_ = true; } if (_if_) { _code_.Add(@" public fastCSharp.setup.remoteType "); _code_.Add(_value2_.ReturnTypeName); _code_.Add(@";"); } { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); _value3_ = _value2_.MethodParameters; if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _code_.Add(@" public "); { fastCSharp.setup.memberType _value5_ = _value4_.ParameterType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.GenericParameterType; if (_value6_ != null) { _code_.Add(_value6_.FullName); } } } } _code_.Add(@" "); _code_.Add(_value4_.ParameterName); _code_.Add(@";"); ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _code_.Add(_value2_.InputParameterSerialize); _code_.Add(@" }"); } _if_ = false; if (_value2_.IsOutputParameter) { _if_ = true; } if (_if_) { _code_.Add(@" internal class "); _code_.Add(_value2_.OutputParameterTypeName); _code_.Add(@" : "); _if_ = false; if (_value2_.MethodIsReturn) { _if_ = true; } if (_if_) { _code_.Add(@"fastCSharp.setup.cSharp.tcpBase.returnParameter<"); { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.GenericParameterType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@">, "); } _code_.Add(@"fastCSharp.setup.cSharp.serialize.ISerialize {"); { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); { fastCSharp.setup.methodInfo _value4_ = _value2_.Method; if (_value4_ != null) { _value3_ = _value4_.OutputParameters; } } if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _code_.Add(@" public "); { fastCSharp.setup.memberType _value5_ = _value4_.ParameterType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.GenericParameterType; if (_value6_ != null) { _code_.Add(_value6_.FullName); } } } } _code_.Add(@" "); _code_.Add(_value4_.ParameterName); _code_.Add(@";"); ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _code_.Add(_value2_.OutputParameterSerialize); _code_.Add(@" }"); } _code_.Add(@" private void "); _code_.Add(_value2_.MethodIndexName); _code_.Add(@"(socket _socket_, int _identity_) { bool _isError_ = false;"); _if_ = false; if (_value2_.IsOutputParameter) { _if_ = true; } if (_if_) { _code_.Add(@" byte[] _data_ = null;"); } _code_.Add(@" try {"); _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { _code_.Add(@" "); _code_.Add(_value2_.InputParameterTypeName); _code_.Add(@" _inputParameter_ = new "); _code_.Add(_value2_.InputParameterTypeName); _code_.Add(@"(); (_inputParameter_).DeSerialize(_socket_.CurrentData);"); _if_ = false; if (_value2_.IsInvokeGenericMethod) { _if_ = true; } if (_if_) { _code_.Add(@" object[] _invokeParameter_ = new object[] { "); { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); _value3_ = _value2_.MethodParameters; if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _code_.Add(@"_inputParameter_."); _code_.Add(_value4_.ParameterJoinName); ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _code_.Add(@"};"); } } _code_.Add(@" "); _if_ = false; if (_value2_.MethodIsReturn) { _if_ = true; } if (_if_) { _code_.Add(@" "); { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.GenericParameterType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@" _return_ = "); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MethodType; if (_value3_ != null) { { System.Type _value4_ = _value3_.Type; if (_value4_ != null) { if (_value4_.IsGenericType) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" "); _if_ = false; if (_value2_.MethodIsReturn) { _if_ = true; } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.GenericParameterType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"fastCSharp.setup.cSharp.tcpCall.InvokeGenericTypeMethod(_inputParameter_."); _code_.Add(TypeGenericParameterName); _code_.Add(@", """); _code_.Add(_value2_.MethodIndexName); _code_.Add(@""""); _if_ = false; { fastCSharp.setup.methodInfo _value3_ = _value2_.Method; if (_value3_ != null) { { System.Reflection.MethodInfo _value4_ = _value3_.Method; if (_value4_ != null) { if (_value4_.IsGenericMethod) { _if_ = true; } } } } } if (_if_) { _code_.Add(@", _inputParameter_."); _code_.Add(GenericParameterTypeName); } _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { _code_.Add(@", _invokeParameter_"); } _code_.Add(@");"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MethodType; if (_value3_ != null) { { System.Type _value4_ = _value3_.Type; if (_value4_ != null) { if (!(bool)_value4_.IsGenericType) { _if_ = true; } } } } } if (_if_) { _if_ = false; { fastCSharp.setup.methodInfo _value3_ = _value2_.Method; if (_value3_ != null) { { System.Reflection.MethodInfo _value4_ = _value3_.Method; if (_value4_ != null) { if (_value4_.IsGenericMethod) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" "); _if_ = false; if (_value2_.MethodIsReturn) { _if_ = true; } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.GenericParameterType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"fastCSharp.setup.cSharp.tcpCall.InvokeGenericMethod("); { fastCSharp.setup.memberType _value3_ = _value2_.MethodType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@"/**/."); _code_.Add(GenericTypeServerName); _code_.Add(@"/**/."); _code_.Add(_value2_.GenericMethodInfoName); _code_.Add(@", _inputParameter_."); _code_.Add(GenericParameterTypeName); _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { _code_.Add(@", _invokeParameter_"); } _code_.Add(@");"); } _if_ = false; { fastCSharp.setup.methodInfo _value3_ = _value2_.Method; if (_value3_ != null) { { System.Reflection.MethodInfo _value4_ = _value3_.Method; if (_value4_ != null) { if (!(bool)_value4_.IsGenericMethod) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" "); { fastCSharp.setup.memberType _value3_ = _value2_.MethodType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@"/**/."); _code_.Add(GenericTypeServerName); _code_.Add(@"/**/."); _code_.Add(_value2_.MethodIndexGenericName); _code_.Add(@"("); { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); _value3_ = _value2_.MethodParameters; if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _code_.Add(_value4_.ParameterRef); _code_.Add(@"_inputParameter_."); _code_.Add(_value4_.ParameterJoinName); ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _code_.Add(@");"); } } _if_ = false; if (_value2_.IsOutputParameter) { _if_ = true; } if (_if_) { _if_ = false; if (_value2_.IsInvokeGenericMethod) { _if_ = true; } if (_if_) { { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); _value3_ = _value2_.MethodParameters; if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _if_ = false; if (_value4_.IsRefOrOut) { _if_ = true; } if (_if_) { _code_.Add(@" _inputParameter_."); _code_.Add(_value4_.ParameterName); _code_.Add(@" = ("); { fastCSharp.setup.memberType _value5_ = _value4_.ParameterType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.GenericParameterType; if (_value6_ != null) { _code_.Add(_value6_.FullName); } } } } _code_.Add(@")_invokeParameter_["); _code_.Add(_value4_.ParameterIndex.ToString()); _code_.Add(@"];"); } ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } } _code_.Add(@" _data_ = (new "); _code_.Add(_value2_.OutputParameterTypeName); _code_.Add(@" {"); { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); { fastCSharp.setup.methodInfo _value4_ = _value2_.Method; if (_value4_ != null) { _value3_ = _value4_.OutputParameters; } } if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _code_.Add(@" "); _code_.Add(_value4_.ParameterName); _code_.Add(@" = _inputParameter_."); _code_.Add(_value4_.ParameterName); _code_.Add(@","); ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _if_ = false; if (_value2_.MethodIsReturn) { _if_ = true; } if (_if_) { _code_.Add(@" "); _code_.Add(_value2_.ReturnName); _code_.Add(@" = _return_"); } _code_.Add(@" }).Serialize();"); } _code_.Add(@" } catch (Exception error) { _isError_ = true; fastCSharp.log.Default.Add(error, null, true); if (send(_socket_, fastCSharp.net.tcpServer.status.Error, _identity_)) close(_socket_, _identity_); _socket_.Dispose(); } if (!_isError_) {"); _if_ = false; if (_value2_.IsOutputParameter) { _if_ = true; } if (_if_) { _code_.Add(@" if (!send(_socket_, fastCSharp.net.tcpServer.status.Success, _identity_, _data_))"); } _if_ = false; if (!(bool)_value2_.IsOutputParameter) { _if_ = true; } if (_if_) { _code_.Add(@" if (!send(_socket_, fastCSharp.net.tcpServer.status.Success, _identity_))"); } _code_.Add(@" _socket_.Dispose(); } }"); ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _code_.Add(@" }"); } _if_ = false; { fastCSharp.setup.cSharp.tcpServer _value1_ = ServiceAttribute; if (_value1_ != null) { if (_value1_.IsAsynchronous) { _if_ = true; } } } if (_if_) { _code_.Add(@" /// <summary> /// TCP调用服务端 /// </summary> public class "); _code_.Add(ServiceNameAsynchronous); _code_.Add(@" : fastCSharp.net.tcpServerAsynchronous { /// <summary> /// TCP调用服务端 /// </summary> /// <param name=""attribute"">TCP调用服务器端配置信息</param> /// <param name=""verify"">TCP验证实例</param> public "); _code_.Add(ServiceNameAsynchronous); _code_.Add(@"(fastCSharp.setup.cSharp.tcpServer attribute = null, fastCSharp.setup.cSharp.tcpBase.ITcpVerifyAsynchronous verify = null) : base(attribute ?? fastCSharp.setup.cSharp.tcpServer.GetConfig("""); _code_.Add(ServiceName); _code_.Add(@"""), verify"); _if_ = false; { fastCSharp.setup.cSharp.tcpServer _value1_ = ServiceAttribute; if (_value1_ != null) { if (_value1_.VerifyType != null) { _if_ = true; } } } if (_if_) { _code_.Add(@" ?? new "); _code_.Add(TcpVerifyType); _code_.Add(@"()"); } _code_.Add(@") { list<keyValue<hashBytes, keyValue<action<socket, int>, bool>>>.unsafer onCommands = new list<keyValue<hashBytes, keyValue<action<socket, int>, bool>>>("); { fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex[] _value1_ = MethodIndexs; if (_value1_ != null) { _code_.Add(_value1_.Length.ToString()); } } _code_.Add(@" + 1).Unsafer; onCommands.Add(new keyValue<hashBytes, keyValue<action<socket, int>, bool>>(closeCommandData, new keyValue<action<socket, int>, bool>(new action<socket, int>(close), false)));"); { fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex[] _value1_ = default(fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex[]); _value1_ = MethodIndexs; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex _value2_ in _value1_) { _code_.Add(@" onCommands.Add(new keyValue<hashBytes, keyValue<action<socket, int>, bool>>(formatMethodKeyName("""); { fastCSharp.setup.methodInfo _value3_ = _value2_.Method; if (_value3_ != null) { _code_.Add(_value3_.MethodKeyFullName); } } _code_.Add(@"""), new keyValue<action<socket, int>, bool>("); _code_.Add(_value2_.MethodIndexName); _code_.Add(@", "); _code_.Add(_value2_.IsInputParameter ? "true" : "false"); _code_.Add(@")));"); ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _code_.Add(@" this.onCommands = new staticDictionary<hashBytes, keyValue<action<socket, int>, bool>>(onCommands.List); }"); { fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex[] _value1_ = default(fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex[]); _value1_ = MethodIndexs; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex _value2_ in _value1_) { _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { _code_.Add(@" [fastCSharp.setup.cSharp.serialize(IsIgnore = true, IsObject = true, IsInterface = true)] internal class "); _code_.Add(_value2_.InputParameterTypeName); _code_.Add(@" : fastCSharp.setup.cSharp.serialize.ISerialize {"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MethodType; if (_value3_ != null) { { System.Type _value4_ = _value3_.Type; if (_value4_ != null) { if (_value4_.IsGenericType) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" public fastCSharp.setup.remoteType "); _code_.Add(TypeGenericParameterName); _code_.Add(@";"); } _if_ = false; { fastCSharp.setup.methodInfo _value3_ = _value2_.Method; if (_value3_ != null) { { System.Reflection.MethodInfo _value4_ = _value3_.Method; if (_value4_ != null) { if (_value4_.IsGenericMethod) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" public fastCSharp.setup.remoteType[] "); _code_.Add(GenericParameterTypeName); _code_.Add(@";"); } _if_ = false; if (_value2_.IsGenericParameterCallback) { _if_ = true; } if (_if_) { _code_.Add(@" public fastCSharp.setup.remoteType "); _code_.Add(_value2_.ReturnTypeName); _code_.Add(@";"); } { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); _value3_ = _value2_.MethodParameters; if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _code_.Add(@" public "); { fastCSharp.setup.memberType _value5_ = _value4_.ParameterType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.GenericParameterType; if (_value6_ != null) { _code_.Add(_value6_.FullName); } } } } _code_.Add(@" "); _code_.Add(_value4_.ParameterName); _code_.Add(@";"); ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _code_.Add(_value2_.InputParameterSerialize); _code_.Add(@" }"); } _if_ = false; if (_value2_.IsOutputParameter) { _if_ = true; } if (_if_) { _code_.Add(@" internal class "); _code_.Add(_value2_.OutputParameterTypeName); _code_.Add(@" : "); _if_ = false; if (_value2_.MethodIsReturn) { _if_ = true; } if (_if_) { _code_.Add(@"fastCSharp.setup.cSharp.tcpBase.returnParameter<"); { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.GenericParameterType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@">, "); } _code_.Add(@"fastCSharp.setup.cSharp.serialize.ISerialize {"); { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); { fastCSharp.setup.methodInfo _value4_ = _value2_.Method; if (_value4_ != null) { _value3_ = _value4_.OutputParameters; } } if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _code_.Add(@" public "); { fastCSharp.setup.memberType _value5_ = _value4_.ParameterType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.GenericParameterType; if (_value6_ != null) { _code_.Add(_value6_.FullName); } } } } _code_.Add(@" "); _code_.Add(_value4_.ParameterName); _code_.Add(@";"); ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _code_.Add(_value2_.OutputParameterSerialize); _code_.Add(@" }"); } _if_ = false; if (_value2_.IsAsynchronousCallback) { _if_ = true; } if (_if_) { _code_.Add(@" private struct "); _code_.Add(_value2_.AsynchronousCallbackIndexName); _code_.Add(@" { public "); _code_.Add(ServiceNameAsynchronous); _code_.Add(@" Server; public socket Socket; public int Identity; public void Callback(fastCSharp.setup.cSharp.tcpBase.asynchronousReturn"); _if_ = false; if (_value2_.MethodIsReturn) { _if_ = true; } if (_if_) { _code_.Add(@"<"); { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.GenericParameterType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@">"); } _code_.Add(@" returnValue) {"); _if_ = false; if (_value2_.MethodIsReturn) { _if_ = true; } if (_if_) { _code_.Add(@" byte[] data = null; if (returnValue.IsReturn) { try { data = (new "); _code_.Add(_value2_.OutputParameterTypeName); _code_.Add(@" { "); _code_.Add(_value2_.ReturnName); _code_.Add(@" = returnValue.Value }).Serialize(); } catch (Exception error) { returnValue.IsReturn = false; fastCSharp.log.Default.Add(error, null, true); } }"); } _code_.Add(@" if (returnValue.IsReturn) Server.send(Socket, Server.receiveCommand, fastCSharp.net.tcpServer.status.Success, Identity"); _if_ = false; if (_value2_.MethodIsReturn) { _if_ = true; } if (_if_) { _code_.Add(@", data"); } _code_.Add(@"); else Server.send(Socket, socket.Close, fastCSharp.net.tcpServer.status.Error, Identity); } }"); } _code_.Add(@" private void "); _code_.Add(_value2_.MethodIndexName); _code_.Add(@"(socket _socket_, int _identity_) {"); _if_ = false; if (_value2_.IsAsynchronousCallback) { _if_ = true; } if (_if_) { _code_.Add(@" bool _isAsync_ = false;"); } _if_ = false; if (!(bool)_value2_.IsAsynchronousCallback) { _if_ = true; } if (_if_) { _code_.Add(@" bool _isError_ = false;"); _if_ = false; if (_value2_.IsOutputParameter) { _if_ = true; } if (_if_) { _code_.Add(@" byte[] _data_ = null;"); } } _code_.Add(@" try {"); _if_ = false; if (_value2_.IsAsynchronousCallback) { _if_ = true; } if (_if_) { _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { _code_.Add(@" "); _code_.Add(_value2_.InputParameterTypeName); _code_.Add(@" _inputParameter_ = new "); _code_.Add(_value2_.InputParameterTypeName); _code_.Add(@"(); (_inputParameter_).DeSerialize(_socket_.CurrentData);"); } _if_ = false; if (_value2_.IsInvokeGenericMethod) { _if_ = true; } if (_if_) { _code_.Add(@" object[] _invokeParameter_ = new object[] { "); { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); _value3_ = _value2_.MethodParameters; if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _code_.Add(@"_inputParameter_."); _code_.Add(_value4_.ParameterName); _code_.Add(@", "); ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _if_ = false; if (_value2_.IsGenericParameterCallback) { _if_ = true; } if (_if_) { _code_.Add(@"fastCSharp.setup.cSharp.tcpBase.GetGenericParameterCallback(_inputParameter_."); _code_.Add(_value2_.ReturnTypeName); _code_.Add(@", "); } _if_ = false; if (!(bool)_value2_.IsGenericParameterCallback) { _if_ = true; } if (_if_) { _code_.Add(@"(action<fastCSharp.setup.cSharp.tcpBase.asynchronousReturn"); _if_ = false; if (_value2_.MethodIsReturn) { _if_ = true; } if (_if_) { _code_.Add(@"<"); { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.GenericParameterType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@">"); } _code_.Add(@">)"); } _code_.Add(@"new "); _code_.Add(_value2_.AsynchronousCallbackIndexName); _code_.Add(@" { Server = this, Socket = _socket_, Identity = _identity_ }.Callback"); _if_ = false; if (_value2_.IsGenericParameterCallback) { _if_ = true; } if (_if_) { _code_.Add(@")"); } _code_.Add(@" };"); } _code_.Add(@" _isAsync_ = true;"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MethodType; if (_value3_ != null) { { System.Type _value4_ = _value3_.Type; if (_value4_ != null) { if (_value4_.IsGenericType) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" fastCSharp.setup.cSharp.tcpCall.InvokeGenericTypeMethod(_inputParameter_."); _code_.Add(TypeGenericParameterName); _code_.Add(@", """); _code_.Add(_value2_.MethodIndexName); _code_.Add(@""""); _if_ = false; { fastCSharp.setup.methodInfo _value3_ = _value2_.Method; if (_value3_ != null) { { System.Reflection.MethodInfo _value4_ = _value3_.Method; if (_value4_ != null) { if (_value4_.IsGenericMethod) { _if_ = true; } } } } } if (_if_) { _code_.Add(@", _inputParameter_."); _code_.Add(GenericParameterTypeName); } _code_.Add(@", _invokeParameter_);"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MethodType; if (_value3_ != null) { { System.Type _value4_ = _value3_.Type; if (_value4_ != null) { if (!(bool)_value4_.IsGenericType) { _if_ = true; } } } } } if (_if_) { _if_ = false; { fastCSharp.setup.methodInfo _value3_ = _value2_.Method; if (_value3_ != null) { { System.Reflection.MethodInfo _value4_ = _value3_.Method; if (_value4_ != null) { if (_value4_.IsGenericMethod) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" fastCSharp.setup.cSharp.tcpCall.InvokeGenericMethod("); { fastCSharp.setup.memberType _value3_ = _value2_.MethodType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@"/**/."); _code_.Add(GenericTypeServerName); _code_.Add(@"/**/."); _code_.Add(_value2_.GenericMethodInfoName); _code_.Add(@", _inputParameter_."); _code_.Add(GenericParameterTypeName); _code_.Add(@", _invokeParameter_);"); } _if_ = false; { fastCSharp.setup.methodInfo _value3_ = _value2_.Method; if (_value3_ != null) { { System.Reflection.MethodInfo _value4_ = _value3_.Method; if (_value4_ != null) { if (!(bool)_value4_.IsGenericMethod) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" "); { fastCSharp.setup.memberType _value3_ = _value2_.MethodType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@"/**/."); _code_.Add(GenericTypeServerName); _code_.Add(@"/**/."); _code_.Add(_value2_.MethodIndexGenericName); _code_.Add(@"("); { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); _value3_ = _value2_.MethodParameters; if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _code_.Add(_value4_.ParameterRef); _code_.Add(@"_inputParameter_."); _code_.Add(_value4_.ParameterName); _code_.Add(@", "); ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _code_.Add(@"new "); _code_.Add(_value2_.AsynchronousCallbackIndexName); _code_.Add(@" { Server = this, Socket = _socket_, Identity = _identity_ }.Callback);"); } } } _code_.Add(@" "); _if_ = false; if (!(bool)_value2_.IsAsynchronousCallback) { _if_ = true; } if (_if_) { _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { _code_.Add(@" "); _code_.Add(_value2_.InputParameterTypeName); _code_.Add(@" _inputParameter_ = new "); _code_.Add(_value2_.InputParameterTypeName); _code_.Add(@"(); (_inputParameter_).DeSerialize(_socket_.CurrentData);"); _if_ = false; if (_value2_.IsInvokeGenericMethod) { _if_ = true; } if (_if_) { _code_.Add(@" object[] _invokeParameter_ = new object[] { "); { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); _value3_ = _value2_.MethodParameters; if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _code_.Add(@"_inputParameter_."); _code_.Add(_value4_.ParameterJoinName); ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _code_.Add(@"};"); } } _code_.Add(@" "); _if_ = false; if (_value2_.MethodIsReturn) { _if_ = true; } if (_if_) { _code_.Add(@" "); { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.GenericParameterType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@" _return_ = "); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MethodType; if (_value3_ != null) { { System.Type _value4_ = _value3_.Type; if (_value4_ != null) { if (_value4_.IsGenericType) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" "); _if_ = false; if (_value2_.MethodIsReturn) { _if_ = true; } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.GenericParameterType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"fastCSharp.setup.cSharp.tcpCall.InvokeGenericTypeMethod(_inputParameter_."); _code_.Add(TypeGenericParameterName); _code_.Add(@", """); _code_.Add(_value2_.MethodIndexName); _code_.Add(@""""); _if_ = false; { fastCSharp.setup.methodInfo _value3_ = _value2_.Method; if (_value3_ != null) { { System.Reflection.MethodInfo _value4_ = _value3_.Method; if (_value4_ != null) { if (_value4_.IsGenericMethod) { _if_ = true; } } } } } if (_if_) { _code_.Add(@", _inputParameter_."); _code_.Add(GenericParameterTypeName); } _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { _code_.Add(@", _invokeParameter_"); } _code_.Add(@");"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MethodType; if (_value3_ != null) { { System.Type _value4_ = _value3_.Type; if (_value4_ != null) { if (!(bool)_value4_.IsGenericType) { _if_ = true; } } } } } if (_if_) { _if_ = false; { fastCSharp.setup.methodInfo _value3_ = _value2_.Method; if (_value3_ != null) { { System.Reflection.MethodInfo _value4_ = _value3_.Method; if (_value4_ != null) { if (_value4_.IsGenericMethod) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" "); _if_ = false; if (_value2_.MethodIsReturn) { _if_ = true; } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.GenericParameterType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"fastCSharp.setup.cSharp.tcpCall.InvokeGenericMethod("); { fastCSharp.setup.memberType _value3_ = _value2_.MethodType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@"/**/."); _code_.Add(GenericTypeServerName); _code_.Add(@"/**/."); _code_.Add(_value2_.GenericMethodInfoName); _code_.Add(@", _inputParameter_."); _code_.Add(GenericParameterTypeName); _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { _code_.Add(@", _invokeParameter_"); } _code_.Add(@");"); } _if_ = false; { fastCSharp.setup.methodInfo _value3_ = _value2_.Method; if (_value3_ != null) { { System.Reflection.MethodInfo _value4_ = _value3_.Method; if (_value4_ != null) { if (!(bool)_value4_.IsGenericMethod) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" "); { fastCSharp.setup.memberType _value3_ = _value2_.MethodType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@"/**/."); _code_.Add(GenericTypeServerName); _code_.Add(@"/**/."); _code_.Add(_value2_.MethodIndexGenericName); _code_.Add(@"("); { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); _value3_ = _value2_.MethodParameters; if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _code_.Add(_value4_.ParameterRef); _code_.Add(@"_inputParameter_."); _code_.Add(_value4_.ParameterJoinName); ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _code_.Add(@");"); } } _if_ = false; if (_value2_.IsOutputParameter) { _if_ = true; } if (_if_) { _if_ = false; if (_value2_.IsInvokeGenericMethod) { _if_ = true; } if (_if_) { { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); _value3_ = _value2_.MethodParameters; if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _if_ = false; if (_value4_.IsRefOrOut) { _if_ = true; } if (_if_) { _code_.Add(@" _inputParameter_."); _code_.Add(_value4_.ParameterName); _code_.Add(@" = ("); { fastCSharp.setup.memberType _value5_ = _value4_.ParameterType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.GenericParameterType; if (_value6_ != null) { _code_.Add(_value6_.FullName); } } } } _code_.Add(@")_invokeParameter_["); _code_.Add(_value4_.ParameterIndex.ToString()); _code_.Add(@"];"); } ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } } _code_.Add(@" _data_ = (new "); _code_.Add(_value2_.OutputParameterTypeName); _code_.Add(@" {"); { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); { fastCSharp.setup.methodInfo _value4_ = _value2_.Method; if (_value4_ != null) { _value3_ = _value4_.OutputParameters; } } if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _code_.Add(@" "); _code_.Add(_value4_.ParameterName); _code_.Add(@" = _inputParameter_."); _code_.Add(_value4_.ParameterName); _code_.Add(@","); ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _if_ = false; if (_value2_.MethodIsReturn) { _if_ = true; } if (_if_) { _code_.Add(@" "); _code_.Add(_value2_.ReturnName); _code_.Add(@" = _return_"); } _code_.Add(@" }).Serialize();"); } } _code_.Add(@" } catch (Exception error) { fastCSharp.log.Default.Add(error, null, true);"); _if_ = false; if (_value2_.IsAsynchronousCallback) { _if_ = true; } if (_if_) { _code_.Add(@" if (!_isAsync_)"); } _code_.Add(@" {"); _if_ = false; if (!(bool)_value2_.IsAsynchronousCallback) { _if_ = true; } if (_if_) { _code_.Add(@" _isError_ = true;"); } _code_.Add(@" send(_socket_, socket.Close, fastCSharp.net.tcpServer.status.Error, _identity_); } }"); _if_ = false; if (!(bool)_value2_.IsAsynchronousCallback) { _if_ = true; } if (_if_) { _code_.Add(@" if (!_isError_) {"); _if_ = false; if (_value2_.IsOutputParameter) { _if_ = true; } if (_if_) { _code_.Add(@" send(_socket_, receiveCommand, fastCSharp.net.tcpServer.status.Success, _identity_, _data_);"); } _if_ = false; if (!(bool)_value2_.IsOutputParameter) { _if_ = true; } if (_if_) { _code_.Add(@" send(_socket_, receiveCommand, fastCSharp.net.tcpServer.status.Success, _identity_);"); } _code_.Add(@" }"); } _code_.Add(@" }"); ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _code_.Add(@" }"); } _partCodes_["SERVER"] = _code_.ToString(); _code_ = _PART_SERVER_; _code_.Add(_partCodes_["SERVER"]); stringBuilder _PART_CLIENT_ = _code_; _code_ = new stringBuilder(); _code_.Add(@" public class "); _code_.Add(ServiceName); _code_.Add(@" {"); _if_ = false; { fastCSharp.setup.cSharp.tcpServer _value1_ = ServiceAttribute; if (_value1_ != null) { if (_value1_.IsSegmentation) { _if_ = true; } } } if (_if_) { { fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex[] _value1_ = default(fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex[]); _value1_ = MethodIndexs; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.cSharp.tcpBase.cSharp<fastCSharp.setup.cSharp.tcpCall>.methodIndex _value2_ in _value1_) { _if_ = false; if (_value2_.IsInputParameter) { _if_ = true; } if (_if_) { _code_.Add(@" [fastCSharp.setup.cSharp.serialize(IsIgnore = true, IsObject = true, IsInterface = true)] internal class "); _code_.Add(_value2_.InputParameterTypeName); _code_.Add(@" : fastCSharp.setup.cSharp.serialize.ISerialize {"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MethodType; if (_value3_ != null) { { System.Type _value4_ = _value3_.Type; if (_value4_ != null) { if (_value4_.IsGenericType) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" public fastCSharp.setup.remoteType "); _code_.Add(TypeGenericParameterName); _code_.Add(@";"); } _if_ = false; { fastCSharp.setup.methodInfo _value3_ = _value2_.Method; if (_value3_ != null) { { System.Reflection.MethodInfo _value4_ = _value3_.Method; if (_value4_ != null) { if (_value4_.IsGenericMethod) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" public fastCSharp.setup.remoteType[] "); _code_.Add(GenericParameterTypeName); _code_.Add(@";"); } _if_ = false; if (_value2_.IsGenericParameterCallback) { _if_ = true; } if (_if_) { _code_.Add(@" public fastCSharp.setup.remoteType "); _code_.Add(_value2_.ReturnTypeName); _code_.Add(@";"); } { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); _value3_ = _value2_.MethodParameters; if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _code_.Add(@" public "); { fastCSharp.setup.memberType _value5_ = _value4_.ParameterType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.GenericParameterType; if (_value6_ != null) { _code_.Add(_value6_.FullName); } } } } _code_.Add(@" "); _code_.Add(_value4_.ParameterName); _code_.Add(@";"); ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _code_.Add(_value2_.InputParameterSerialize); _code_.Add(@" }"); } _if_ = false; if (_value2_.IsOutputParameter) { _if_ = true; } if (_if_) { _code_.Add(@" internal class "); _code_.Add(_value2_.OutputParameterTypeName); _code_.Add(@" : "); _if_ = false; if (_value2_.MethodIsReturn) { _if_ = true; } if (_if_) { _code_.Add(@"fastCSharp.setup.cSharp.tcpBase.returnParameter<"); { fastCSharp.setup.memberType _value3_ = _value2_.MethodReturnType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.GenericParameterType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@">, "); } _code_.Add(@"fastCSharp.setup.cSharp.serialize.ISerialize {"); { fastCSharp.setup.parameterInfo[] _value3_ = default(fastCSharp.setup.parameterInfo[]); { fastCSharp.setup.methodInfo _value4_ = _value2_.Method; if (_value4_ != null) { _value3_ = _value4_.OutputParameters; } } if (_value3_ != null) { int _loopIndex3_ = _loopIndex_, _loopCount3_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value3_.Length; foreach (fastCSharp.setup.parameterInfo _value4_ in _value3_) { _code_.Add(@" public "); { fastCSharp.setup.memberType _value5_ = _value4_.ParameterType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.GenericParameterType; if (_value6_ != null) { _code_.Add(_value6_.FullName); } } } } _code_.Add(@" "); _code_.Add(_value4_.ParameterName); _code_.Add(@";"); ++_loopIndex_; } _loopIndex_ = _loopIndex3_; _loopCount_ = _loopCount3_; } } _code_.Add(_value2_.OutputParameterSerialize); _code_.Add(@" }"); } ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } } _code_.Add(@" /// <summary> /// 默认TCP调用服务器端配置信息 /// </summary> protected internal static readonly fastCSharp.setup.cSharp.tcpServer defaultTcpServer; /// <summary> /// 客户端TCP调用池 /// </summary> public class clientPool { /// <summary> /// 客户端TCP调用池 /// </summary> public static readonly fastCSharp.setup.cSharp.tcpCall.clientPool ClientPool; static clientPool() {"); _if_ = false; { fastCSharp.setup.cSharp.tcpServer _value1_ = ServiceAttribute; if (_value1_ != null) { if (!(bool)_value1_.IsSegmentation) { _if_ = true; } } } if (_if_) { _code_.Add(@" if (defaultTcpServer.IsServer) fastCSharp.log.Default.Add(""请确认 "); _code_.Add(ServiceName); _code_.Add(@" 服务器端是否本地调用"");"); } _code_.Add(@" ClientPool = new fastCSharp.setup.cSharp.tcpCall.clientPool(defaultTcpServer, true, """); _code_.Add(ServiceName); _code_.Add(@""""); _if_ = false; { fastCSharp.setup.cSharp.tcpServer _value1_ = ServiceAttribute; if (_value1_ != null) { if (_value1_.VerifyType != null) { _if_ = true; } } } if (_if_) { _code_.Add(@", new "); _code_.Add(TcpVerifyType); _code_.Add(@"()"); } _code_.Add(@"); } } /// <summary> /// 默认客户端TCP调用池 /// </summary> public static fastCSharp.setup.cSharp.tcpCall.clientPool DefaultPool { get { return clientPool.ClientPool; } } static "); _code_.Add(ServiceName); _code_.Add(@"() { defaultTcpServer = fastCSharp.setup.cSharp.tcpServer.GetConfig("""); _code_.Add(ServiceName); _code_.Add(@""");"); _if_ = false; { fastCSharp.setup.cSharp.tcpServer _value1_ = ServiceAttribute; if (_value1_ != null) { if (_value1_.IsSegmentation) { _if_ = true; } } } if (_if_) { _code_.Add(@" defaultTcpServer.IsServer = false;"); } _code_.Add(@" } }"); _partCodes_["CLIENT"] = _code_.ToString(); _code_ = _PART_CLIENT_; _code_.Add(_partCodes_["CLIENT"]); } outEnd(definition); } }
/// <summary> /// 生成代码 /// </summary> /// <param name="isOut">是否输出代码</param> protected override void create(bool isOut) { fastCSharp.setup.cSharp.cSharper.definition definition = isOut ? outStart() : null; if (!isOut || definition != null) { _code_.Add(@" "); _code_.Add(TypeNameDefinition); _code_.Add(@" : fastCSharp.setup.cSharp.serialize.ISerialize<"); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap>"); _if_ = false; { fastCSharp.setup.cSharp.serialize _value1_ = Attribute; if (_value1_ != null) { if (_value1_.IsStreamSerialize) { _if_ = true; } } } if (_if_) { _code_.Add(@", fastCSharp.setup.cSharp.serialize.IStreamSerialize<"); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap> "); } _code_.Add(@" {"); stringBuilder _PART_BODY_ = _code_; _code_ = new stringBuilder(); _code_.Add(@" /// <summary> /// 序列化 /// </summary> unsafe class serializer : fastCSharp.setup.cSharp.serialize.dataSerializer { /// <summary> /// 序列化 /// </summary> /// <param name=""stream"">序列化流</param> /// <param name=""memberMap"">成员位图接口</param> public serializer(memoryStream stream, fastCSharp.setup.cSharp.IMemberMap memberMap) : base(stream, memberMap) { } /// <summary> /// 序列化 /// </summary> /// <param name=""parentSerializer"">序列化</param> /// <param name=""memberMap"">成员位图接口</param> public serializer(fastCSharp.setup.cSharp.serialize.dataSerializer parentSerializer) : base(parentSerializer, default("); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap)) { } /// <summary> /// 对象序列化 /// </summary> /// <param name=""value"">对象</param>"); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" /// <param name=""isPoint"">是否记录历史指针</param>"); } _code_.Add(@" public void Serialize("); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@" value"); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@", bool isPoint"); } _code_.Add(@") {"); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" if (value != null)"); } _code_.Add(@" {"); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" if (isPoint) points[value] = dataStream.Length - streamStartIndex;"); } _code_.Add(@" versionMemerMap("); { fastCSharp.setup.cSharp.serialize _value1_ = SerializeAttribute; if (_value1_ != null) { _code_.Add(_value1_.Version.ToString()); } } _code_.Add(@"); serialize(value); }"); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" else dataStream.Write(fastCSharp.setup.cSharp.serialize.NullValue);"); } _code_.Add(@" } /// <summary> /// 对象序列化 /// </summary> /// <param name=""value"">对象</param> private void serialize("); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@" value) { memoryStream.unsafer unsafeStream = dataStream.Unsafer; int length = memberMap.SerializeSize; dataStream.PrepLength(length + "); _code_.Add(SerializeSize.ToString()); _code_.Add(@"); fixed (byte* dataFixed = dataStream.Array) { write = dataFixed + dataStream.Length; fixedMap nullMap = new fixedMap(write); fastCSharp.unsafer.memory.Fill(write, (uint)0, length >> 2); write += length; if (memberMap.IsDefault) {"); { fastCSharp.setup.memberInfo[] _value1_ = default(fastCSharp.setup.memberInfo[]); _value1_ = Members; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.memberInfo _value2_ in _value1_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" if ("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@" == null) nullMap.Set("); _code_.Add(_value2_.MemberIndex.ToString()); _code_.Add(@");"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsMemberSerialize) { _if_ = true; } } } if (_if_) { _code_.Add(@" else"); } } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsMemberSerialize) { _if_ = true; } } } if (_if_) { _code_.Add(@" { *("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.StructNotNullType); } } } } _code_.Add(@"*)write = ("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.StructNotNullType); } } } } _code_.Add(@")"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@"; write += sizeof("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.StructNotNullType); } } } } _code_.Add(@"); }"); } ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _code_.Add(@" } else {"); { fastCSharp.setup.memberInfo[] _value1_ = default(fastCSharp.setup.memberInfo[]); _value1_ = Members; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.memberInfo _value2_ in _value1_) { _code_.Add(@" if (memberMap.IsMember("); _code_.Add(_value2_.MemberIndex.ToString()); _code_.Add(@")) {"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" if ("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@" == null) nullMap.Set("); _code_.Add(_value2_.MemberIndex.ToString()); _code_.Add(@");"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsMemberSerialize) { _if_ = true; } } } if (_if_) { _code_.Add(@" else"); } } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsMemberSerialize) { _if_ = true; } } } if (_if_) { _code_.Add(@" { *("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.StructNotNullType); } } } } _code_.Add(@"*)write = ("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.StructNotNullType); } } } } _code_.Add(@")"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@"; write += sizeof("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.StructNotNullType); } } } } _code_.Add(@"); }"); } _code_.Add(@" }"); ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _code_.Add(@" } unsafeStream.AddLength(((int)(write - dataFixed - dataStream.Length) + 3) & (int.MaxValue - 3)); } if (memberMap.IsDefault) {"); { fastCSharp.setup.memberInfo[] _value1_ = default(fastCSharp.setup.memberInfo[]); _value1_ = Members; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.memberInfo _value2_ in _value1_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsMemberSerialize) { _if_ = true; } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsString) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" serializeString("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"(string)"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsByteArray) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" byteArray("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"(byte[])"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsISerialize) { _if_ = true; } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" iSerialize("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (!(bool)_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" iSerializeNotNull("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsSerializeArray) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" { "); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { _code_.Add(_value5_.FullName); } } } } } } _code_.Add(@"[] enumerable = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@"; if (checkPoint(enumerable)) { "); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.SerializeType; if (_value6_ != null) { _code_.Add(_value6_.FullName); } } } } } } } } _code_.Add(@"[] array = enumerable"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { if (!(bool)_value5_.IsSerializeType) { _if_ = true; } } } } } } } if (_if_) { _code_.Add(@".getArray(arrayValue => ("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.SerializeType; if (_value6_ != null) { _code_.Add(_value6_.FullName); } } } } } } } } _code_.Add(@")arrayValue)"); } _code_.Add(@";"); { fastCSharp.setup.memberType _value3_ = default(fastCSharp.setup.memberType); { fastCSharp.setup.memberType _value4_ = _value2_.MemberType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.SerializeType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.EnumerableArgumentType; if (_value6_ != null) { _value3_ = _value6_.SerializeType; } } } } } } _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsMemberSerialize) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsBool) { _if_ = true; } if (_if_) { _code_.Add(@" unsafeStream.PrepSerialize(array);"); } _if_ = false; if (!(bool)_value3_.IsBool) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.NullType != null) { _if_ = true; } if (_if_) { _code_.Add(@" nullArrayNoPoint(array);"); } _if_ = false; if (_value3_.NullType == null) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsSerializeBlockCopy) { _if_ = true; } if (_if_) { _code_.Add(@" unsafeStream.PrepSerialize(array, sizeof("); _code_.Add(_value3_.StructNotNullType); _code_.Add(@"));"); } _if_ = false; if (_value3_.IsDateTime) { _if_ = true; } if (_if_) { _code_.Add(@" unsafeStream.PrepSerialize(array);"); } _if_ = false; if (_value3_.IsDecimal) { _if_ = true; } if (_if_) { _code_.Add(@" unsafeStream.PrepSerialize(array);"); } _if_ = false; if (_value3_.IsGuid) { _if_ = true; } if (_if_) { _code_.Add(@" unsafeStream.PrepSerialize(array);"); } } } } _if_ = false; if (_value3_.IsString) { _if_ = true; } if (_if_) { _code_.Add(@" stringArrayNoPoint(array);"); } _if_ = false; if (_value3_.IsISerialize) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsNull) { _if_ = true; } if (_if_) { _code_.Add(@" iSerializeArrayNoPoint(array);"); } _if_ = false; if (!(bool)_value3_.IsNull) { _if_ = true; } if (_if_) { _code_.Add(@" iSerializeArrayNotNullNoPoint(array);"); } } _code_.Add(@" "); _if_ = false; if (_value3_.IsSerializeArrayUnknown) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsNull) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.NullType != null) { _if_ = true; } if (_if_) { _code_.Add(@" unknownArrayNull(array);"); } _if_ = false; if (_value3_.NullType == null) { _if_ = true; } if (_if_) { _code_.Add(@" unknownArray(array);"); } } _if_ = false; if (!(bool)_value3_.IsNull) { _if_ = true; } if (_if_) { _code_.Add(@" unknownArrayNotNull(array);"); } } } } _code_.Add(@" } }"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsSerializeUnknown) { _if_ = true; } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.NullType != null) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" unknownNull("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.NullType == null) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" unknown("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (!(bool)_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" unknownNotNull("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } } } ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _code_.Add(@" } else {"); { fastCSharp.setup.memberInfo[] _value1_ = default(fastCSharp.setup.memberInfo[]); _value1_ = Members; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.memberInfo _value2_ in _value1_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsMemberSerialize) { _if_ = true; } } } if (_if_) { _code_.Add(@" if (memberMap.IsMember("); _code_.Add(_value2_.MemberIndex.ToString()); _code_.Add(@")) {"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsString) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" serializeString("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"(string)"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsByteArray) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" byteArray("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"(byte[])"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsISerialize) { _if_ = true; } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" iSerialize("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (!(bool)_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" iSerializeNotNull("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsSerializeArray) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" { "); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { _code_.Add(_value5_.FullName); } } } } } } _code_.Add(@"[] enumerable = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@"; if (checkPoint(enumerable)) { "); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.SerializeType; if (_value6_ != null) { _code_.Add(_value6_.FullName); } } } } } } } } _code_.Add(@"[] array = enumerable"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { if (!(bool)_value5_.IsSerializeType) { _if_ = true; } } } } } } } if (_if_) { _code_.Add(@".getArray(arrayValue => ("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.SerializeType; if (_value6_ != null) { _code_.Add(_value6_.FullName); } } } } } } } } _code_.Add(@")arrayValue)"); } _code_.Add(@";"); { fastCSharp.setup.memberType _value3_ = default(fastCSharp.setup.memberType); { fastCSharp.setup.memberType _value4_ = _value2_.MemberType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.SerializeType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.EnumerableArgumentType; if (_value6_ != null) { _value3_ = _value6_.SerializeType; } } } } } } _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsMemberSerialize) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsBool) { _if_ = true; } if (_if_) { _code_.Add(@" unsafeStream.PrepSerialize(array);"); } _if_ = false; if (!(bool)_value3_.IsBool) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.NullType != null) { _if_ = true; } if (_if_) { _code_.Add(@" nullArrayNoPoint(array);"); } _if_ = false; if (_value3_.NullType == null) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsSerializeBlockCopy) { _if_ = true; } if (_if_) { _code_.Add(@" unsafeStream.PrepSerialize(array, sizeof("); _code_.Add(_value3_.StructNotNullType); _code_.Add(@"));"); } _if_ = false; if (_value3_.IsDateTime) { _if_ = true; } if (_if_) { _code_.Add(@" unsafeStream.PrepSerialize(array);"); } _if_ = false; if (_value3_.IsDecimal) { _if_ = true; } if (_if_) { _code_.Add(@" unsafeStream.PrepSerialize(array);"); } _if_ = false; if (_value3_.IsGuid) { _if_ = true; } if (_if_) { _code_.Add(@" unsafeStream.PrepSerialize(array);"); } } } } _if_ = false; if (_value3_.IsString) { _if_ = true; } if (_if_) { _code_.Add(@" stringArrayNoPoint(array);"); } _if_ = false; if (_value3_.IsISerialize) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsNull) { _if_ = true; } if (_if_) { _code_.Add(@" iSerializeArrayNoPoint(array);"); } _if_ = false; if (!(bool)_value3_.IsNull) { _if_ = true; } if (_if_) { _code_.Add(@" iSerializeArrayNotNullNoPoint(array);"); } } _code_.Add(@" "); _if_ = false; if (_value3_.IsSerializeArrayUnknown) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsNull) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.NullType != null) { _if_ = true; } if (_if_) { _code_.Add(@" unknownArrayNull(array);"); } _if_ = false; if (_value3_.NullType == null) { _if_ = true; } if (_if_) { _code_.Add(@" unknownArray(array);"); } } _if_ = false; if (!(bool)_value3_.IsNull) { _if_ = true; } if (_if_) { _code_.Add(@" unknownArrayNotNull(array);"); } } } } _code_.Add(@" } }"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsSerializeUnknown) { _if_ = true; } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.NullType != null) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" unknownNull("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.NullType == null) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" unknown("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (!(bool)_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" unknownNotNull("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } } _code_.Add(@" }"); } ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _code_.Add(@" } } } /// <summary> /// 对象序列化 /// </summary> /// <returns>序列化数据</returns> public byte[] Serialize() { using (memoryStream stream = new memoryStream()) { Serialize(stream, default("); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap)); return stream.ToArray(); } } /// <summary> /// 对象序列化 /// </summary> /// <param name=""stream"">数据流</param> public void Serialize(memoryStream stream) { Serialize(stream, default("); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap)); } /// <summary> /// 对象序列化 /// </summary> /// <param name=""stream"">数据流</param> /// <param name=""memberMap"">成员位图接口</param> public void Serialize(memoryStream stream, "); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap memberMap) { serializer serializer = new serializer(stream, memberMap); serializer.Serialize(this"); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@", true"); } _code_.Add(@"); serializer.Finally(); } /// <summary> /// 对象序列化 /// </summary> /// <param name=""serializer"">对象序列化器</param> public void Serialize(fastCSharp.setup.cSharp.serialize.dataSerializer parentSerializer) { new serializer(parentSerializer).Serialize(this"); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@", false"); } _code_.Add(@"); }"); _if_ = false; { fastCSharp.setup.cSharp.serialize _value1_ = Attribute; if (_value1_ != null) { if (_value1_.IsStreamSerialize) { _if_ = true; } } } if (_if_) { _code_.Add(@" /// <summary> /// 序列化 /// </summary> unsafe class streamSerializer : fastCSharp.setup.cSharp.serialize.streamSerializer { /// <summary> /// 序列化 /// </summary> /// <param name=""stream"">序列化流</param> /// <param name=""memberMap"">成员位图接口</param> public streamSerializer(System.IO.Stream stream, fastCSharp.setup.cSharp.IMemberMap memberMap) : base(stream, memberMap, "); _code_.Add(SerializeSize.ToString()); _code_.Add(@") { } /// <summary> /// 序列化 /// </summary> /// <param name=""parentSerializer"">对象序列化器</param> public streamSerializer(fastCSharp.setup.cSharp.serialize.streamSerializer parentSerializer) : base(parentSerializer, default("); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap), "); _code_.Add(SerializeSize.ToString()); _code_.Add(@") { } /// <summary> /// 对象序列化 /// </summary> /// <param name=""value"">对象</param>"); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" /// <param name=""isPoint"">是否记录历史指针</param>"); } _code_.Add(@" public void Serialize("); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@" value"); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@", bool isPoint"); } _code_.Add(@") {"); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" if (value != null)"); } _code_.Add(@" { fixed (byte* dataFixed = valueData) { dataPoint = dataFixed;"); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" if(isPoint) points[value] = (int)dataStream.Position - streamStartIndex;"); } _code_.Add(@" versionMemerMap("); { fastCSharp.setup.cSharp.serialize _value1_ = SerializeAttribute; if (_value1_ != null) { _code_.Add(_value1_.Version.ToString()); } } _code_.Add(@"); serialize(value); } }"); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" else dataStream.Write(nullLength, 0, sizeof(int));"); } _code_.Add(@" } /// <summary> /// 对象序列化 /// </summary> /// <param name=""value"">对象</param> private void serialize("); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@" value) { int length = memberMap.SerializeSize; fixedMap nullMap = new fixedMap(dataPoint); fastCSharp.unsafer.memory.Fill(dataPoint, (uint)0, length >> 2); write = dataPoint + length; if (memberMap.IsDefault) {"); { fastCSharp.setup.memberInfo[] _value1_ = default(fastCSharp.setup.memberInfo[]); _value1_ = Members; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.memberInfo _value2_ in _value1_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" if ("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@" == null) nullMap.Set("); _code_.Add(_value2_.MemberIndex.ToString()); _code_.Add(@");"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsMemberSerialize) { _if_ = true; } } } if (_if_) { _code_.Add(@" else"); } } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsMemberSerialize) { _if_ = true; } } } if (_if_) { _code_.Add(@" { *("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.StructNotNullType); } } } } _code_.Add(@"*)write = ("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.StructNotNullType); } } } } _code_.Add(@")"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@"; write += sizeof("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.StructNotNullType); } } } } _code_.Add(@"); }"); } ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _code_.Add(@" } else {"); { fastCSharp.setup.memberInfo[] _value1_ = default(fastCSharp.setup.memberInfo[]); _value1_ = Members; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.memberInfo _value2_ in _value1_) { _code_.Add(@" if (memberMap.IsMember("); _code_.Add(_value2_.MemberIndex.ToString()); _code_.Add(@")) {"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" if ("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@" == null) nullMap.Set("); _code_.Add(_value2_.MemberIndex.ToString()); _code_.Add(@");"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsMemberSerialize) { _if_ = true; } } } if (_if_) { _code_.Add(@" else"); } } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsMemberSerialize) { _if_ = true; } } } if (_if_) { _code_.Add(@" { *("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.StructNotNullType); } } } } _code_.Add(@"*)write = ("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.StructNotNullType); } } } } _code_.Add(@")"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@"; write += sizeof("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.StructNotNullType); } } } } _code_.Add(@"); }"); } _code_.Add(@" }"); ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _code_.Add(@" } #region Attribute.IsTestCase if ((length = (int)(write - dataPoint) & 3) != 0) { while (length++ != 4) *write++ = 0; } #endregion Attribute.IsTestCase dataStream.Write(valueData, 0, ((int)(write - dataPoint) + 3) & (int.MaxValue - 3)); if (memberMap.IsDefault) {"); { fastCSharp.setup.memberInfo[] _value1_ = default(fastCSharp.setup.memberInfo[]); _value1_ = Members; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.memberInfo _value2_ in _value1_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsMemberSerialize) { _if_ = true; } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsString) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" serializeString("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"(string)"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsByteArray) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" byteArray("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"(byte[])"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsIStreamSerialize) { _if_ = true; } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" iSerialize("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (!(bool)_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" iSerializeNotNull("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsSerializeArray) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" { "); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { _code_.Add(_value5_.FullName); } } } } } } _code_.Add(@"[] enumerable = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@"; if (checkPoint(enumerable)) { "); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.SerializeType; if (_value6_ != null) { _code_.Add(_value6_.FullName); } } } } } } } } _code_.Add(@"[] array = enumerable"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { if (!(bool)_value5_.IsSerializeType) { _if_ = true; } } } } } } } if (_if_) { _code_.Add(@".getArray(arrayValue => ("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.SerializeType; if (_value6_ != null) { _code_.Add(_value6_.FullName); } } } } } } } } _code_.Add(@")arrayValue)"); } _code_.Add(@";"); { fastCSharp.setup.memberType _value3_ = default(fastCSharp.setup.memberType); { fastCSharp.setup.memberType _value4_ = _value2_.MemberType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.SerializeType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.EnumerableArgumentType; if (_value6_ != null) { _value3_ = _value6_.SerializeType; } } } } } } _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsMemberSerialize) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsBool) { _if_ = true; } if (_if_) { _code_.Add(@" serializeNoPoint(array);"); } _if_ = false; if (!(bool)_value3_.IsBool) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.NullType != null) { _if_ = true; } if (_if_) { _code_.Add(@" nullArrayNoPoint(array);"); } _if_ = false; if (_value3_.NullType == null) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsSerializeBlockCopy) { _if_ = true; } if (_if_) { _code_.Add(@" serializeNoPoint(array, array.Length * sizeof("); _code_.Add(_value3_.StructNotNullType); _code_.Add(@"));"); } _if_ = false; if (_value3_.IsDateTime) { _if_ = true; } if (_if_) { _code_.Add(@" serializeNoPoint(array);"); } _if_ = false; if (_value3_.IsDecimal) { _if_ = true; } if (_if_) { _code_.Add(@" serializeNoPoint(array);"); } _if_ = false; if (_value3_.IsGuid) { _if_ = true; } if (_if_) { _code_.Add(@" serializeNoPoint(array);"); } } } } _if_ = false; if (_value3_.IsString) { _if_ = true; } if (_if_) { _code_.Add(@" stringArrayNoPoint(array);"); } _if_ = false; if (_value3_.IsIStreamSerialize) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsNull) { _if_ = true; } if (_if_) { _code_.Add(@" iSerializeArrayNoPoint(array);"); } _if_ = false; if (!(bool)_value3_.IsNull) { _if_ = true; } if (_if_) { _code_.Add(@" iSerializeArrayNotNullNoPoint(array);"); } } _code_.Add(@" "); _if_ = false; if (_value3_.IsStreamSerializeArrayUnknown) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsNull) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.NullType != null) { _if_ = true; } if (_if_) { _code_.Add(@" unknownArrayNull(array);"); } _if_ = false; if (_value3_.NullType == null) { _if_ = true; } if (_if_) { _code_.Add(@" unknownArray(array);"); } } _if_ = false; if (!(bool)_value3_.IsNull) { _if_ = true; } if (_if_) { _code_.Add(@" unknownArrayNotNull(array);"); } } } } _code_.Add(@" } }"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsStreamSerializeUnknown) { _if_ = true; } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.NullType != null) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" unknownNull("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.NullType == null) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" unknown("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (!(bool)_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" unknownNotNull("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } } } ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _code_.Add(@" } else {"); { fastCSharp.setup.memberInfo[] _value1_ = default(fastCSharp.setup.memberInfo[]); _value1_ = Members; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.memberInfo _value2_ in _value1_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsMemberSerialize) { _if_ = true; } } } if (_if_) { _code_.Add(@" if (memberMap.IsMember("); _code_.Add(_value2_.MemberIndex.ToString()); _code_.Add(@")) {"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsString) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" serializeString("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"(string)"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsByteArray) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" byteArray("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"(byte[])"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsIStreamSerialize) { _if_ = true; } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" iSerialize("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (!(bool)_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" iSerializeNotNull("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsSerializeArray) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" { "); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { _code_.Add(_value5_.FullName); } } } } } } _code_.Add(@"[] enumerable = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@"; if (checkPoint(enumerable)) { "); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.SerializeType; if (_value6_ != null) { _code_.Add(_value6_.FullName); } } } } } } } } _code_.Add(@"[] array = enumerable"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { if (!(bool)_value5_.IsSerializeType) { _if_ = true; } } } } } } } if (_if_) { _code_.Add(@".getArray(arrayValue => ("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.SerializeType; if (_value6_ != null) { _code_.Add(_value6_.FullName); } } } } } } } } _code_.Add(@")arrayValue)"); } _code_.Add(@";"); { fastCSharp.setup.memberType _value3_ = default(fastCSharp.setup.memberType); { fastCSharp.setup.memberType _value4_ = _value2_.MemberType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.SerializeType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.EnumerableArgumentType; if (_value6_ != null) { _value3_ = _value6_.SerializeType; } } } } } } _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsMemberSerialize) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsBool) { _if_ = true; } if (_if_) { _code_.Add(@" serializeNoPoint(array);"); } _if_ = false; if (!(bool)_value3_.IsBool) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.NullType != null) { _if_ = true; } if (_if_) { _code_.Add(@" nullArrayNoPoint(array);"); } _if_ = false; if (_value3_.NullType == null) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsSerializeBlockCopy) { _if_ = true; } if (_if_) { _code_.Add(@" serializeNoPoint(array, array.Length * sizeof("); _code_.Add(_value3_.StructNotNullType); _code_.Add(@"));"); } _if_ = false; if (_value3_.IsDateTime) { _if_ = true; } if (_if_) { _code_.Add(@" serializeNoPoint(array);"); } _if_ = false; if (_value3_.IsDecimal) { _if_ = true; } if (_if_) { _code_.Add(@" serializeNoPoint(array);"); } _if_ = false; if (_value3_.IsGuid) { _if_ = true; } if (_if_) { _code_.Add(@" serializeNoPoint(array);"); } } } } _if_ = false; if (_value3_.IsString) { _if_ = true; } if (_if_) { _code_.Add(@" stringArrayNoPoint(array);"); } _if_ = false; if (_value3_.IsIStreamSerialize) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsNull) { _if_ = true; } if (_if_) { _code_.Add(@" iSerializeArrayNoPoint(array);"); } _if_ = false; if (!(bool)_value3_.IsNull) { _if_ = true; } if (_if_) { _code_.Add(@" iSerializeArrayNotNullNoPoint(array);"); } } _code_.Add(@" "); _if_ = false; if (_value3_.IsStreamSerializeArrayUnknown) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsNull) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.NullType != null) { _if_ = true; } if (_if_) { _code_.Add(@" unknownArrayNull(array);"); } _if_ = false; if (_value3_.NullType == null) { _if_ = true; } if (_if_) { _code_.Add(@" unknownArray(array);"); } } _if_ = false; if (!(bool)_value3_.IsNull) { _if_ = true; } if (_if_) { _code_.Add(@" unknownArrayNotNull(array);"); } } } } _code_.Add(@" } }"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsStreamSerializeUnknown) { _if_ = true; } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.NullType != null) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" unknownNull("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.NullType == null) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" unknown("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (!(bool)_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" unknownNotNull("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } } _code_.Add(@" }"); } ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _code_.Add(@" } } } /// <summary> /// 对象序列化 /// </summary> /// <param name=""stream"">数据流</param> public void Serialize(System.IO.Stream stream) { Serialize(stream, default("); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap)); } /// <summary> /// 对象序列化 /// </summary> /// <param name=""stream"">数据流</param> /// <param name=""memberMap"">成员位图接口</param> public void Serialize(System.IO.Stream stream, "); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap memberMap) { streamSerializer streamSerializer = new streamSerializer(stream, memberMap); streamSerializer.Serialize(this"); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@", true"); } _code_.Add(@"); streamSerializer.Finally(); } /// <summary> /// 对象序列化 /// </summary> /// <param name=""parentSerializer"">对象序列化器</param> public void Serialize(fastCSharp.setup.cSharp.serialize.streamSerializer parentSerializer) { new streamSerializer(parentSerializer).Serialize(this"); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@", false"); } _code_.Add(@"); }"); } _code_.Add(@" /// <summary> /// 对象反序列化 /// </summary> unsafe class deSerializer : fastCSharp.setup.cSharp.serialize.deSerializer { /// <summary> /// 成员位图接口 /// </summary> public "); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap MemberMap; /// <summary> /// 对象反序列化 /// </summary> /// <param name=""data"">序列化数据</param> public deSerializer(byte[] data) : base(data) { } /// <summary> /// 对象反序列化 /// </summary> /// <param name=""parentDeSerializer"">对象反序列化器</param> public deSerializer(fastCSharp.setup.cSharp.serialize.deSerializer parentDeSerializer) : base(parentDeSerializer) { } /// <summary> /// 反序列化 /// </summary> /// <param name=""value"">反序列化目标对象</param> /// <param name=""startIndex"">数据起始位置</param> /// <returns>数据对象</returns> public "); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@" DeSerialize("); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@" value, int startIndex) { fixed (byte* dataFixed = data) { this.dataFixed = dataFixed; dataStart = read = dataFixed + startIndex; dataVersion = *(int*)read; if (dataVersion != (int)fastCSharp.setup.cSharp.serializeVersion.serialize) { fastCSharp.log.Default.Throw(""序列化格式版本号不匹配 fastCSharp.setup.cSharp.serializeVersion.serialize["" + ((int)fastCSharp.setup.cSharp.serializeVersion.serialize).toString() + ""] != "" + dataVersion.toString(), true, false); } dataVersion = *(int*)(read += sizeof(int));"); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" if (dataVersion != fastCSharp.setup.cSharp.serialize.NullValue)"); } _code_.Add(@" { versionMemberMap(); value = DeSerializeData(value); checkEnd(); return value; } }"); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" return default("); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@");"); } _code_.Add(@" } /// <summary> /// 版本号+成员位图接口 /// </summary> protected override void versionMemberMap() { if (dataVersion != "); { fastCSharp.setup.cSharp.serialize _value1_ = SerializeAttribute; if (_value1_ != null) { _code_.Add(_value1_.Version.ToString()); } } _code_.Add(@") { fastCSharp.log.Default.Throw(""序列化版本号错误 "); { fastCSharp.setup.cSharp.serialize _value1_ = SerializeAttribute; if (_value1_ != null) { _code_.Add(_value1_.Version.ToString()); } } _code_.Add(@" != "" + dataVersion.toString(), true, false); } read = MemberMap.DeSerialize(read += sizeof(int)); } /// <summary> /// 反序列化 /// </summary> /// <param name=""value"">反序列化目标对象</param> /// <returns>数据对象</returns> public "); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@" DeSerialize("); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@" value) { dataVersion = *(int*)read; versionMemberMap(); return DeSerializeData(value); } /// <summary> /// 反序列化 /// </summary> /// <param name=""value"">反序列化目标对象</param> /// <returns>数据对象</returns> public "); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@" DeSerializeData("); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@" value) { fixedMap nullMap = new fixedMap(read); read += MemberMap.SerializeSize; if (MemberMap.IsDefault) {"); { fastCSharp.setup.memberInfo[] _value1_ = default(fastCSharp.setup.memberInfo[]); _value1_ = Members; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.memberInfo _value2_ in _value1_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" if (nullMap.Get("); _code_.Add(_value2_.MemberIndex.ToString()); _code_.Add(@")) value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"default("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@");"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsMemberSerialize) { _if_ = true; } } } if (_if_) { _code_.Add(@" else"); } } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsMemberSerialize) { _if_ = true; } } } if (_if_) { _code_.Add(@" { value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.NotSerializeTypeEnum) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"*("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.StructNotNullType); } } } } _code_.Add(@"*)read); read += sizeof("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.StructNotNullType); } } } } _code_.Add(@"); }"); } ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _code_.Add(@" } else {"); { fastCSharp.setup.memberInfo[] _value1_ = default(fastCSharp.setup.memberInfo[]); _value1_ = Members; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.memberInfo _value2_ in _value1_) { _code_.Add(@" if (MemberMap.IsMember("); _code_.Add(_value2_.MemberIndex.ToString()); _code_.Add(@")) {"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" if (nullMap.Get("); _code_.Add(_value2_.MemberIndex.ToString()); _code_.Add(@")) value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"default("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@");"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsMemberSerialize) { _if_ = true; } } } if (_if_) { _code_.Add(@" else"); } } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsMemberSerialize) { _if_ = true; } } } if (_if_) { _code_.Add(@" { value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.NotSerializeTypeEnum) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"("); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")"); } _code_.Add(@"*("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.StructNotNullType); } } } } _code_.Add(@"*)read); read += sizeof("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.StructNotNullType); } } } } _code_.Add(@"); }"); } _code_.Add(@" }"); ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _code_.Add(@" } int length = (int)(read - nullMap.Map); if ((length & 3) != 0) read += -length & 3; if (MemberMap.IsDefault) {"); { fastCSharp.setup.memberInfo[] _value1_ = default(fastCSharp.setup.memberInfo[]); _value1_ = Members; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.memberInfo _value2_ in _value1_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsMemberSerialize) { _if_ = true; } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" if (!nullMap.Get("); _code_.Add(_value2_.MemberIndex.ToString()); _code_.Add(@"))"); } _code_.Add(@" {"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsString) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"getString();"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsByteArray) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"byteArray();"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsISerialize) { _if_ = true; } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"iSerialize(() => new "); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@"());"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (!(bool)_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"iSerializeNotNull<"); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@">();"); } } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsSerializeArray) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" { object reference = getPoint(); if (reference != null) value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")reference; else { length = *(int*)read; "); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { _code_.Add(_value5_.FullName); } } } } } } _code_.Add(@"[] enumerable = new "); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { _code_.Add(_value5_.FullName); } } } } } } _code_.Add(@"[length]; points.Add(-(int)(read - dataStart), enumerable); read += sizeof(int);"); { fastCSharp.setup.memberType _value3_ = default(fastCSharp.setup.memberType); { fastCSharp.setup.memberType _value4_ = _value2_.MemberType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.SerializeType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.EnumerableArgumentType; if (_value6_ != null) { _value3_ = _value6_.SerializeType; } } } } } } _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(@" "); _code_.Add(_value3_.FullName); _code_.Add(@"[] array = new "); _code_.Add(_value3_.FullName); _code_.Add(@"[length];"); _if_ = false; if (_value3_.IsMemberSerialize) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsBool) { _if_ = true; } if (_if_) { _code_.Add(@" deSerializeNoPoint(array);"); } _if_ = false; if (!(bool)_value3_.IsBool) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.NullType != null) { _if_ = true; } if (_if_) { _code_.Add(@" nullArrayNoPoint(array);"); } _if_ = false; if (_value3_.NullType == null) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsSerializeBlockCopy) { _if_ = true; } if (_if_) { _code_.Add(@" deSerializeNoPoint(array, sizeof("); _code_.Add(_value3_.StructNotNullType); _code_.Add(@"));"); } _if_ = false; if (_value3_.IsDateTime) { _if_ = true; } if (_if_) { _code_.Add(@" deSerializeNoPoint(array);"); } _if_ = false; if (_value3_.IsDecimal) { _if_ = true; } if (_if_) { _code_.Add(@" deSerializeNoPoint(array);"); } _if_ = false; if (_value3_.IsGuid) { _if_ = true; } if (_if_) { _code_.Add(@" deSerializeNoPoint(array);"); } } } } _if_ = false; if (_value3_.IsString) { _if_ = true; } if (_if_) { _code_.Add(@" stringArrayNoPoint(array);"); } _if_ = false; if (_value3_.IsISerialize) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsNull) { _if_ = true; } if (_if_) { _code_.Add(@" iSerializeArrayNoPoint(array, () => new "); _code_.Add(_value3_.FullName); _code_.Add(@"());"); } _if_ = false; if (!(bool)_value3_.IsNull) { _if_ = true; } if (_if_) { _code_.Add(@" iSerializeArrayNotNullNoPoint(array);"); } } _code_.Add(@" "); _if_ = false; if (_value3_.IsSerializeArrayUnknown) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsNull) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.NullType != null) { _if_ = true; } if (_if_) { _code_.Add(@" unknownArrayNull(array);"); } _if_ = false; if (_value3_.NullType == null) { _if_ = true; } if (_if_) { _code_.Add(@" unknownArray(array);"); } } _if_ = false; if (!(bool)_value3_.IsNull) { _if_ = true; } if (_if_) { _code_.Add(@" unknownArrayNotNull(array);"); } } } } _code_.Add(@" Array.Copy(array"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { if (!(bool)_value5_.IsSerializeType) { _if_ = true; } } } } } } } if (_if_) { _code_.Add(@".getArray(arrayValue => ("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { _code_.Add(_value5_.FullName); } } } } } } _code_.Add(@")arrayValue)"); } _code_.Add(@", 0, enumerable, 0, array.Length); value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"enumerable; } }"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsSerializeUnknown) { _if_ = true; } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.NullType != null) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"unknownNull<"); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.StructNotNullType); } } } } _code_.Add(@">();"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.NullType == null) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"unknown<"); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@">();"); } } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (!(bool)_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"unknownNotNull<"); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@">();"); } } _code_.Add(@" }"); } ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _code_.Add(@" } else {"); { fastCSharp.setup.memberInfo[] _value1_ = default(fastCSharp.setup.memberInfo[]); _value1_ = Members; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.memberInfo _value2_ in _value1_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsMemberSerialize) { _if_ = true; } } } if (_if_) { _code_.Add(@" if (MemberMap.IsMember("); _code_.Add(_value2_.MemberIndex.ToString()); _code_.Add(@")) {"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" if (!nullMap.Get("); _code_.Add(_value2_.MemberIndex.ToString()); _code_.Add(@"))"); } _code_.Add(@" {"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsString) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"getString();"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsByteArray) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"byteArray();"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsISerialize) { _if_ = true; } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"iSerialize(() => new "); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@"());"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (!(bool)_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"iSerializeNotNull<"); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@">();"); } } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsSerializeArray) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" { object reference = getPoint(); if (reference != null) value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")reference; else { length = *(int*)read; "); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { _code_.Add(_value5_.FullName); } } } } } } _code_.Add(@"[] enumerable = new "); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { _code_.Add(_value5_.FullName); } } } } } } _code_.Add(@"[length]; points.Add(-(int)(read - dataStart), enumerable); read += sizeof(int);"); { fastCSharp.setup.memberType _value3_ = default(fastCSharp.setup.memberType); { fastCSharp.setup.memberType _value4_ = _value2_.MemberType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.SerializeType; if (_value5_ != null) { { fastCSharp.setup.memberType _value6_ = _value5_.EnumerableArgumentType; if (_value6_ != null) { _value3_ = _value6_.SerializeType; } } } } } } _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(@" "); _code_.Add(_value3_.FullName); _code_.Add(@"[] array = new "); _code_.Add(_value3_.FullName); _code_.Add(@"[length];"); _if_ = false; if (_value3_.IsMemberSerialize) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsBool) { _if_ = true; } if (_if_) { _code_.Add(@" deSerializeNoPoint(array);"); } _if_ = false; if (!(bool)_value3_.IsBool) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.NullType != null) { _if_ = true; } if (_if_) { _code_.Add(@" nullArrayNoPoint(array);"); } _if_ = false; if (_value3_.NullType == null) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsSerializeBlockCopy) { _if_ = true; } if (_if_) { _code_.Add(@" deSerializeNoPoint(array, sizeof("); _code_.Add(_value3_.StructNotNullType); _code_.Add(@"));"); } _if_ = false; if (_value3_.IsDateTime) { _if_ = true; } if (_if_) { _code_.Add(@" deSerializeNoPoint(array);"); } _if_ = false; if (_value3_.IsDecimal) { _if_ = true; } if (_if_) { _code_.Add(@" deSerializeNoPoint(array);"); } _if_ = false; if (_value3_.IsGuid) { _if_ = true; } if (_if_) { _code_.Add(@" deSerializeNoPoint(array);"); } } } } _if_ = false; if (_value3_.IsString) { _if_ = true; } if (_if_) { _code_.Add(@" stringArrayNoPoint(array);"); } _if_ = false; if (_value3_.IsISerialize) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsNull) { _if_ = true; } if (_if_) { _code_.Add(@" iSerializeArrayNoPoint(array, () => new "); _code_.Add(_value3_.FullName); _code_.Add(@"());"); } _if_ = false; if (!(bool)_value3_.IsNull) { _if_ = true; } if (_if_) { _code_.Add(@" iSerializeArrayNotNullNoPoint(array);"); } } _code_.Add(@" "); _if_ = false; if (_value3_.IsSerializeArrayUnknown) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsNull) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.NullType != null) { _if_ = true; } if (_if_) { _code_.Add(@" unknownArrayNull(array);"); } _if_ = false; if (_value3_.NullType == null) { _if_ = true; } if (_if_) { _code_.Add(@" unknownArray(array);"); } } _if_ = false; if (!(bool)_value3_.IsNull) { _if_ = true; } if (_if_) { _code_.Add(@" unknownArrayNotNull(array);"); } } } } _code_.Add(@" Array.Copy(array"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { if (!(bool)_value5_.IsSerializeType) { _if_ = true; } } } } } } } if (_if_) { _code_.Add(@".getArray(arrayValue => ("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { { fastCSharp.setup.memberType _value5_ = _value4_.EnumerableArgumentType; if (_value5_ != null) { _code_.Add(_value5_.FullName); } } } } } } _code_.Add(@")arrayValue)"); } _code_.Add(@", 0, enumerable, 0, array.Length); value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"enumerable; } }"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsSerializeUnknown) { _if_ = true; } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.NullType != null) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"unknownNull<"); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.StructNotNullType); } } } } _code_.Add(@">();"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (_value4_.NullType == null) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"unknown<"); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@">();"); } } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { if (!(bool)_value4_.IsNull) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.IsSerializeType) { _if_ = true; } } } if (_if_) { _code_.Add(@"("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@")"); } _code_.Add(@"unknownNotNull<"); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.SerializeType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@">();"); } } _code_.Add(@" } }"); } ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _code_.Add(@" } return value; } } /// <summary> /// 反序列化 /// </summary> /// <param name=""data"">序列化数据</param> public bool DeSerialize(byte[] data) { return DeSerialize(data, 0, out deSerializer.OutEndIndex); } /// <summary> /// 反序列化 /// </summary> /// <param name=""data"">序列化数据</param> /// <param name=""startIndex"">起始位置</param> /// <param name=""endIndex"">结束位置</param> public bool DeSerialize(byte[] data, int startIndex, out int endIndex) { deSerializer deSerializer = new deSerializer(data); "); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@" value = deSerializer.DeSerialize(this, startIndex); "); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (!(bool)_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" CopyFrom(value);"); } _code_.Add(@" endIndex = deSerializer.EndIndex; return "); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@"value != null && "); } _code_.Add(@"endIndex <= data.Length; } /// <summary> /// 反序列化 /// </summary> /// <param name=""parentDeSerializer"">对象反序列化器</param> public unsafe void DeSerialize(fastCSharp.setup.cSharp.serialize.deSerializer parentDeSerializer) { deSerializer deSerializer = new deSerializer(parentDeSerializer); "); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (!(bool)_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" "); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@" value = "); } _code_.Add(@"deSerializer.DeSerialize(this); "); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (!(bool)_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" CopyFrom(value);"); } _code_.Add(@" parentDeSerializer.SetRead(deSerializer); }"); _partCodes_["BODY"] = _code_.ToString(); _code_ = _PART_BODY_; _code_.Add(_partCodes_["BODY"]); _code_.Add(@" }"); outEnd(definition); } }
/// <summary> /// 生成代码 /// </summary> /// <param name="isOut">是否输出代码</param> protected override void create(bool isOut) { fastCSharp.setup.cSharp.cSharper.definition definition = isOut ? outStart() : null; if (!isOut || definition != null) { _if_ = false; { fastCSharp.setup.cSharp.ajax _value1_ = Attribute; if (_value1_ != null) { if (_value1_.IsToJson) { _if_ = true; } } } if (_if_) { _code_.Add(@" "); _code_.Add(TypeNameDefinition); _code_.Add(@" : fastCSharp.setup.cSharp.ajax.IToJson<"); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap> {"); stringBuilder _PART_TOJSON_ = _code_; _code_ = new stringBuilder(); _code_.Add(@" /// <summary> /// 对象转换JSON字符串 /// </summary> class toJsoner : fastCSharp.setup.cSharp.ajax.toJsoner { public toJsoner() : base("); _code_.Add(IsPushParent ? "true" : "false"); _code_.Add(@") { } public toJsoner(fastCSharp.setup.cSharp.ajax.toJsoner parent) : base(parent) { } /// <summary> /// 对象转换成JSON字符串 /// </summary> /// <param name=""value"">对象</param> /// <param name=""memberMap"">成员位图接口</param> public void ToJson("); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@" value, "); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap memberMap) {"); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" if (value != null)"); } _code_.Add(@" {"); _if_ = false; if (IsPushParent) { _if_ = true; } if (_if_) { _code_.Add(@" Push(value);"); } _code_.Add(@" jsonStream.Write('{'); isFirstMember = true;"); { fastCSharp.setup.memberInfo[] _value1_ = default(fastCSharp.setup.memberInfo[]); _value1_ = Members; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.memberInfo _value2_ in _value1_) { _if_ = false; { fastCSharp.setup.cSharp.ajax _value3_ = _value2_.ToJsonAttribute; if (_value3_ != null) { if (_value3_.IsToJson) { _if_ = true; } } } if (_if_) { _code_.Add(@" if (memberMap.IsMember("); _code_.Add(_value2_.MemberIndex.ToString()); _code_.Add(@")) { name("""); _code_.Add(_value2_.MemberName); _code_.Add(@""");"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" if (value."); _code_.Add(_value2_.MemberName); _code_.Add(@" == null) jsonStream.Write(fastCSharp.web.ajax.Null); else"); } _code_.Add(@" {"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsToJson) { _if_ = true; } } } if (_if_) { _code_.Add(@" (value."); _code_.Add(_value2_.MemberName); _code_.Add(@").ToJson((fastCSharp.setup.cSharp.ajax.toJsoner)this);"); } _code_.Add(@" "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { System.Type _value4_ = _value3_.Type; if (_value4_ != null) { if (_value4_.IsEnum) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" base.value(value."); _code_.Add(_value2_.MemberName); _code_.Add(@"/**/.ToString());"); } _code_.Add(@" "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.PairKeyType != null) { _if_ = true; } } } if (_if_) { _code_.Add(@" base.keyValue(value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } _code_.Add(@" "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.KeyValueType != null) { _if_ = true; } } } if (_if_) { _code_.Add(@" base.keyValue(value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } _code_.Add(@" "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsToJsonUnknown) { _if_ = true; } } } if (_if_) { _code_.Add(@" base.value(("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.NotNullType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } _code_.Add(@" "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsEnumerable) { _if_ = true; } } } if (_if_) { { fastCSharp.setup.memberType _value3_ = default(fastCSharp.setup.memberType); { fastCSharp.setup.memberType _value4_ = _value2_.MemberType; if (_value4_ != null) { _value3_ = _value4_.EnumerableArgumentType; } } _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _code_.Add(@" { bool isNext = false; jsonStream.Write('['); foreach ("); _code_.Add(_value3_.FullName); _code_.Add(@" nextValue in value."); _code_.Add(_value2_.MemberName); _code_.Add(@") { if (isNext) jsonStream.Write(',');"); _if_ = false; if (_value3_.IsToJson) { _if_ = true; } if (_if_) { _code_.Add(@" if (value != null) (nextValue).ToJson((fastCSharp.setup.cSharp.ajax.toJsoner)this); else jsonStream.Write(fastCSharp.web.ajax.Null);"); } _code_.Add(@" "); _if_ = false; { System.Type _value4_ = _value3_.Type; if (_value4_ != null) { if (_value4_.IsEnum) { _if_ = true; } } } if (_if_) { _code_.Add(@" base.value(nextValue.ToString());"); } _code_.Add(@" "); _if_ = false; if (_value3_.PairKeyType != null) { _if_ = true; } if (_if_) { _code_.Add(@" //(nextValue).ToJson((fastCSharp.setup.cSharp.ajax.toJsoner)this); base.keyValue(nextValue);"); } _code_.Add(@" "); _if_ = false; if (_value3_.KeyValueType != null) { _if_ = true; } if (_if_) { _code_.Add(@" //(nextValue).ToJson((fastCSharp.setup.cSharp.ajax.toJsoner)this); base.keyValue(nextValue);"); } _code_.Add(@" "); _if_ = false; if (_value3_.IsToJsonUnknown) { _if_ = true; } if (_if_) { _code_.Add(@" {"); _if_ = false; if (_value3_.IsNull) { _if_ = true; } if (_if_) { _code_.Add(@" if (nextValue == null) jsonStream.Write(fastCSharp.web.ajax.Null); else"); } _code_.Add(@" { base.value(("); { fastCSharp.setup.memberType _value4_ = _value3_.NotNullType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } _code_.Add(@")nextValue); } }"); } _code_.Add(@" isNext = true; } jsonStream.Write(']'); }"); } } } _code_.Add(@" } }"); } ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _code_.Add(@" isFirstMember = false; jsonStream.Write('}');"); _if_ = false; if (IsPushParent) { _if_ = true; } if (_if_) { _code_.Add(@" parents.Unsafer.AddLength(-1);"); } _code_.Add(@" }"); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" else jsonStream.Write(fastCSharp.web.ajax.Null);"); } _code_.Add(@" } /// <summary> /// 对象集合转换成JSON字符串 /// </summary> /// <param name=""values"">对象集合</param> /// <param name=""memberMap"">成员位图接口</param>"); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" public void ToJson<JsonValueType>(System.Collections.Generic.IEnumerable<JsonValueType> values, "); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap memberMap) where JsonValueType : "); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@" {"); _if_ = false; if (IsPushParent) { _if_ = true; } if (_if_) { _code_.Add(@" ToJsonPush<"); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@", "); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap, JsonValueType>(values, memberMap, ToJson);"); } _if_ = false; if (!(bool)IsPushParent) { _if_ = true; } if (_if_) { _code_.Add(@" ToJson<"); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@", "); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap, JsonValueType>(values, memberMap, ToJson);"); } _code_.Add(@" }"); } _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (!(bool)_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" public void ToJson(System.Collections.Generic.IEnumerable<"); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"> values, "); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap memberMap) {"); _if_ = false; if (IsPushParent) { _if_ = true; } if (_if_) { _code_.Add(@" ToJsonPush<"); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@", "); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap>(values, memberMap, ToJson);"); } _if_ = false; if (!(bool)IsPushParent) { _if_ = true; } if (_if_) { _code_.Add(@" ToJson<"); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@", "); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap>(values, memberMap, ToJson);"); } _code_.Add(@" }"); } _code_.Add(@" } /// <summary> /// 对象转换成JSON字符串 /// </summary> /// <returns>JSON字符串</returns> public string ToJson() { return ToJson(default("); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap)); } /// <summary> /// 对象转换成JSON字符串 /// </summary> /// <param name=""memberMap"">成员位图接口</param> /// <returns>JSON字符串</returns> public string ToJson("); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap memberMap) { toJsoner json = new toJsoner(); json.ToJson(this, memberMap); return json.ToString(); } /// <summary> /// 对象转换成JSON字符串 /// </summary> /// <param name=""jsoner"">对象转换JSON字符串</param> public void ToJson(fastCSharp.setup.cSharp.ajax.toJsoner parent) { new toJsoner(parent).ToJson(this, default("); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap)); } /// <summary> /// 对象集合转换成JSON字符串 /// </summary> /// <param name=""values"">对象集合</param> /// <param name=""memberMap"">成员位图接口</param> /// <returns>JSON字符串</returns>"); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (!(bool)_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" public static string ToJson(System.Collections.Generic.IEnumerable<"); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"> values, "); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap memberMap = default("); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap))"); } _code_.Add(@" "); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" public static string ToJson<JsonValueType>(System.Collections.Generic.IEnumerable<JsonValueType> values, "); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@"/**/.memberMap memberMap) where JsonValueType : "); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } } _code_.Add(@" { toJsoner json = new toJsoner(); json.ToJson(values, memberMap); return json.ToString(); }"); _partCodes_["TOJSON"] = _code_.ToString(); _code_ = _PART_TOJSON_; _code_.Add(_partCodes_["TOJSON"]); _code_.Add(@" }"); } _code_.Add(@" "); _if_ = false; { fastCSharp.setup.cSharp.ajax _value1_ = Attribute; if (_value1_ != null) { if (_value1_.IsParseJson) { _if_ = true; } } } if (_if_) { _code_.Add(@" "); _code_.Add(TypeNameDefinition); _code_.Add(@" : fastCSharp.setup.cSharp.ajax.IParseJson {"); stringBuilder _PART_PARSEJSON_ = _code_; _code_ = new stringBuilder(); _code_.Add(@" /// <summary> /// JSON解析节点转换对象 /// </summary> class jsonParser : fastCSharp.setup.cSharp.ajax.nodeParser { /// <summary> /// 解析对象 /// </summary> /// <param name=""value"">目标对象</param> /// <returns>目标对象</returns> public "); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@" Parse("); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@" value) { if (dictionary != null) { fastCSharp.setup.cSharp.ajax.jsonNode node;"); { fastCSharp.setup.memberInfo[] _value1_ = default(fastCSharp.setup.memberInfo[]); _value1_ = Members; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.memberInfo _value2_ in _value1_) { _if_ = false; if (IsParseJson) { _if_ = true; } if (_if_) { _code_.Add(@" if (dictionary.TryGetValue(currentMemberName = """); _code_.Add(_value2_.MemberName); _code_.Add(@""", out node)) { if (node.Type == fastCSharp.setup.cSharp.ajax.jsonNode.nodeType.Null) value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = default("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@"); else {"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsObject) { _if_ = true; } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = node;"); } _code_.Add(@" "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsString) { _if_ = true; } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = node.String;"); } _code_.Add(@" "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsChar) { _if_ = true; } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = node.Char;"); } _code_.Add(@" "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsBool) { _if_ = true; } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = node.Bool;"); } _code_.Add(@" "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsDateTime) { _if_ = true; } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = node.DateTime;"); } _code_.Add(@" "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { System.Type _value4_ = _value3_.Type; if (_value4_ != null) { if (_value4_.IsEnum) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = fastCSharp.Enum.parseEnum<"); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@">(node.String, value."); _code_.Add(_value2_.MemberName); _code_.Add(@");"); } _code_.Add(@" "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsTryParseJson) { _if_ = true; } } } if (_if_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsTryParseInt) { _if_ = true; } } } if (_if_) { _code_.Add(@" if (node.Type == fastCSharp.setup.cSharp.ajax.jsonNode.nodeType.Int) value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = ("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.NotNullType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@")node.Int; else"); } _code_.Add(@" {"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.NullType != null) { _if_ = true; } } } if (_if_) { _code_.Add(@" "); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.NotNullType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@" nullValue; if ("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { fastCSharp.setup.memberType _value4_ = _value3_.NotNullType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } } } _code_.Add(@"/**/.TryParse(node.NumberString, out nullValue)) value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = nullValue; else"); } _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.NullType == null) { _if_ = true; } } } if (_if_) { _code_.Add(@" if (!"); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@"/**/.TryParse(node.NumberString, out value."); _code_.Add(_value2_.MemberName); _code_.Add(@"))"); } _code_.Add(@" { fastCSharp.log.Default.Throw("""); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@" : "" + currentMemberName + @"" 转换失败 "" + node.NumberString, true, false); } }"); } _code_.Add(@" "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsParseJson) { _if_ = true; } } } if (_if_) { _code_.Add(@" "); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@" parseValue = new "); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@"(); (parseValue).FromJson(node); value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = parseValue;"); } _code_.Add(@" "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (!(bool)_value3_.CanParseJson) { _if_ = true; } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = unknown<"); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@">(node);"); } _code_.Add(@" "); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsEnumerable) { _if_ = true; } } } if (_if_) { { fastCSharp.setup.memberType _value3_ = default(fastCSharp.setup.memberType); { fastCSharp.setup.memberType _value4_ = _value2_.MemberType; if (_value4_ != null) { _value3_ = _value4_.EnumerableArgumentType; } } _if_ = false; if (_value3_ != null) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.CanParseJsonEnumerable) { _if_ = true; } if (_if_) { _code_.Add(@" { if (node.Type != fastCSharp.setup.cSharp.ajax.jsonNode.nodeType.List) fastCSharp.log.Default.Throw(currentMemberName + "" 不可枚举"", true, false); list<fastCSharp.setup.cSharp.ajax.jsonNode> nodes = node.List; "); _code_.Add(_value3_.FullName); _code_.Add(@"[] array = new "); _code_.Add(_value3_.FullName); _code_.Add(@"[nodes.Count]; int arrayIndex = -1; foreach (fastCSharp.setup.cSharp.ajax.jsonNode arrayNode in nodes) { if (arrayNode.Type == fastCSharp.setup.cSharp.ajax.jsonNode.nodeType.Null) array[++arrayIndex] = default("); { fastCSharp.setup.memberType _value4_ = _value3_.NotNullType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } _code_.Add(@"); else {"); _if_ = false; if (_value3_.IsObject) { _if_ = true; } if (_if_) { _code_.Add(@" array[++arrayIndex] = arrayNode;"); } _code_.Add(@" "); _if_ = false; if (_value3_.IsString) { _if_ = true; } if (_if_) { _code_.Add(@" array[++arrayIndex] = arrayNode.String;"); } _code_.Add(@" "); _if_ = false; if (_value3_.IsChar) { _if_ = true; } if (_if_) { _code_.Add(@" array[++arrayIndex] = arrayNode.Char;"); } _code_.Add(@" "); _if_ = false; if (_value3_.IsBool) { _if_ = true; } if (_if_) { _code_.Add(@" array[++arrayIndex] = arrayNode.Bool;"); } _code_.Add(@" "); _if_ = false; if (_value3_.IsDateTime) { _if_ = true; } if (_if_) { _code_.Add(@" array[++arrayIndex] = arrayNode.DateTime;"); } _code_.Add(@" "); _if_ = false; { System.Type _value4_ = _value3_.Type; if (_value4_ != null) { if (_value4_.IsEnum) { _if_ = true; } } } if (_if_) { _code_.Add(@" array[++arrayIndex] = fastCSharp.Enum.parseEnum<"); _code_.Add(_value3_.FullName); _code_.Add(@">(arrayNode.String, default("); _code_.Add(_value3_.FullName); _code_.Add(@"));"); } _code_.Add(@" "); _if_ = false; if (_value3_.IsTryParseJson) { _if_ = true; } if (_if_) { _if_ = false; if (_value3_.IsTryParseInt) { _if_ = true; } if (_if_) { _code_.Add(@" if (arrayNode.Type == fastCSharp.setup.cSharp.ajax.jsonNode.nodeType.Int) array[++arrayIndex] = ("); { fastCSharp.setup.memberType _value4_ = _value3_.NotNullType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } _code_.Add(@")arrayNode.Int; else"); } _code_.Add(@" {"); _if_ = false; if (_value3_.NullType != null) { _if_ = true; } if (_if_) { _code_.Add(@" "); { fastCSharp.setup.memberType _value4_ = _value3_.NotNullType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } _code_.Add(@" arrayNullValue; ++arrayIndex; if ("); { fastCSharp.setup.memberType _value4_ = _value3_.NotNullType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } _code_.Add(@"/**/.TryParse(arrayNode.NumberString, out arrayNullValue)) array[arrayIndex] = arrayNullValue; else"); } _if_ = false; if (_value3_.NullType == null) { _if_ = true; } if (_if_) { _code_.Add(@" if (!"); _code_.Add(_value3_.FullName); _code_.Add(@"/**/.TryParse(arrayNode.NumberString, out array[++arrayIndex]))"); } _code_.Add(@" { fastCSharp.log.Default.Throw("""); { fastCSharp.setup.memberType _value4_ = _value2_.MemberType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } _code_.Add(@" : "" + currentMemberName + @"" 转换失败 "" + arrayNode.NumberString, true, false); } }"); } _code_.Add(@" "); _if_ = false; if (_value3_.IsParseJson) { _if_ = true; } if (_if_) { _code_.Add(@" "); _code_.Add(_value3_.FullName); _code_.Add(@" arrayValue = new "); _code_.Add(_value3_.FullName); _code_.Add(@"(); (arrayValue).FromJson(arrayNode); array[++arrayIndex] = arrayValue;"); } _code_.Add(@" } }"); _if_ = false; { fastCSharp.setup.memberType _value4_ = _value2_.MemberType; if (_value4_ != null) { if (_value4_.IsArrayOrInterface) { _if_ = true; } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = array;"); } _code_.Add(@" "); _if_ = false; { fastCSharp.setup.memberType _value4_ = _value2_.MemberType; if (_value4_ != null) { if (!(bool)_value4_.IsArrayOrInterface) { _if_ = true; } } } if (_if_) { _code_.Add(@" value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = new "); { fastCSharp.setup.memberType _value4_ = _value2_.MemberType; if (_value4_ != null) { _code_.Add(_value4_.FullName); } } _code_.Add(@"(array);"); } _code_.Add(@" }"); } } } } _code_.Add(@" } }"); _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { if (_value3_.IsParseJson) { _if_ = true; } } } if (_if_) { _if_ = false; { fastCSharp.setup.cSharp.ajax _value3_ = _value2_.ToJsonAttribute; if (_value3_ != null) { if (!(bool)_value3_.IsParseNode) { _if_ = true; } } } if (_if_) { _code_.Add(@" else { "); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@" newValue = new "); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@"(); ((fastCSharp.setup.cSharp.ajax.IParseJson)newValue).FromJson(Node); value."); _code_.Add(_value2_.MemberName); _code_.Add(@" = newValue; }"); } } } ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _code_.Add(@" } return value; } } /// <summary> /// JSON字符串转换成对象 /// </summary> /// <param name=""json"">JSON字符串</param> public void FromJson(string json) { FromJson(new fastCSharp.setup.cSharp.ajax.jsonParser().Parse(json)); } /// <summary> /// JSON字符串解析节点换成对象 /// </summary> /// <param name=""node"">JSON字符串解析节点</param> public void FromJson(fastCSharp.setup.cSharp.ajax.jsonNode node) { jsonParser parser = new jsonParser { Node = node }; "); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (!(bool)_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" "); { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { _code_.Add(_value1_.FullName); } } _code_.Add(@" value = "); } _code_.Add(@"parser.Parse(this); "); _if_ = false; { fastCSharp.setup.memberType _value1_ = type; if (_value1_ != null) { if (!(bool)_value1_.IsNull) { _if_ = true; } } } if (_if_) { _code_.Add(@" CopyFrom(value);"); } _code_.Add(@" }"); _partCodes_["PARSEJSON"] = _code_.ToString(); _code_ = _PART_PARSEJSON_; _code_.Add(_partCodes_["PARSEJSON"]); _code_.Add(@" }"); } outEnd(definition); } }
public ScannableString(stringBuilder value) { this.stringBuilder = value; }
/// <summary> /// 安装完成处理 /// </summary> protected unsafe override void onCreated() { stringBuilder clientCallCode = new stringBuilder(); list <methodIndex> methods = new list <methodIndex>(); methodIndex[] methodIndexs; foreach (server server in servers.Values) { if (server.IsMethod) { IsAllType = false; TcpServerAttributeType = server.AttributeType == null || server.AttributeType.Type == null ? null : server.AttributeType.FullName; ServiceAttribute = fastCSharp.config.pub.LoadConfig(server.TcpServer, server.TcpServer.ServiceName); foreach (server.type serverType in server.Types) { methods.Add(serverType.Methods); } methodIndexs = methods.ToArray(); methods.Empty(); if (ServiceAttribute.IsIdentityCommand) { methodIndexs = methodIndex.CheckIdentity(methodIndexs, ServiceAttribute.IsRememberIdentityCommand ? getRememberIdentityName() : nullRememberIdentityName, method => method.Method.MethodKeyFullName); if (methodIndexs == null) { return; } } int index = 0; foreach (methodIndex method in methodIndexs) { method.MethodIndex = index++; } foreach (server.type serverType in server.Types) { if (serverType.Methods.Count != 0) { type = serverType.Type; IsTimeVerify = type == server.AttributeType && server.IsTimeVerify; Attribute = serverType.Attribute ?? new code.cSharp.tcpCall(); MethodIndexs = serverType.Methods.ToArray(); definition.cSharp definition = new definition.cSharp(type, true, false); _code_.Empty(); create(false); fastCSharp.code.coder.Add(definition.Start + _partCodes_["SERVERCALL"] + definition.End); if (ServiceAttribute.IsSegmentation) { clientCallCode.Add(definition.Start + _partCodes_["CLIENTCALL"] + definition.End); } else { fastCSharp.code.coder.Add(definition.Start + _partCodes_["CLIENTCALL"] + definition.End); } } } IsAllType = true; MethodIndexs = methodIndexs; methodIndexs = methodIndexs.getFindArray(value => !value.IsNullMethod); if (ServiceAttribute.IsHttpClient && !methodIndex.CheckHttpMethodName(methodIndexs)) { return; } IsVerifyMethod = methodIndexs.any(value => value.IsVerifyMethod); subArray <int> groupIds = methodIndexs.distinct(value => value.Attribute.GroupId); groupIds.Remove(0); MethodGroups = groupIds.GetArray(value => new methodGroup { GroupId = value }); MaxCommandLength = (ServiceAttribute.IsIdentityCommand ? sizeof(int) : methodIndexs.maxKey(value => (value.Method.MethodKeyFullName.Length + 3) & (int.MaxValue - 3), sizeof(int))) + sizeof(int) * 4 + sizeof(fastCSharp.net.tcp.commandServer.streamIdentity); _code_.Empty(); create(false); fastCSharp.code.coder.Add(@" namespace " + AutoParameter.DefaultNamespace + "." + serverPart + @" { " + _partCodes_["SERVER"] + @" }"); string clientCode = @" namespace " + AutoParameter.DefaultNamespace + "." + clientPart + @" { " + _partCodes_["CLIENT"] + @" }"; if (ServiceAttribute.IsIdentityCommand && ServiceAttribute.IsRememberIdentityCommand) { coder.AddRemember(@" namespace " + AutoParameter.DefaultNamespace + @".tcpRemember { " + _partCodes_["REMEMBER"] + @" }"); } if (ServiceAttribute.IsSegmentation) { clientCallCode.Add(clientCode); string fileName = AutoParameter.ProjectPath + "{" + AutoParameter.DefaultNamespace + "}.tcpCall." + ServiceAttribute.ServiceName + ".client.cs"; clientCode = fastCSharp.code.coder.WarningCode + clientCallCode.ToString() + fastCSharp.code.coder.FileEndCode; if (fastCSharp.code.coder.WriteFile(fileName, clientCode)) { if (ServiceAttribute.ClientSegmentationCopyPath != null) { string copyFileName = ServiceAttribute.ClientSegmentationCopyPath + "{" + AutoParameter.DefaultNamespace + "}.tcpCall." + ServiceAttribute.ServiceName + ".client.cs"; if (!fastCSharp.code.coder.WriteFile(copyFileName, clientCode)) { fastCSharp.code.error.Add(copyFileName + " 写入失败"); } } fastCSharp.code.error.Message(fileName + " 被修改"); } clientCallCode.Empty(); } else { fastCSharp.code.coder.Add(clientCode); } } } }
public setEntityRequest(string arg0, stringBuilder arg1) { this.arg0 = arg0; this.arg1 = arg1; }
/// <summary> /// 生成代码 /// </summary> /// <param name="isOut">是否输出代码</param> protected override void create(bool isOut) { fastCSharp.setup.cSharp.cSharper.definition definition = isOut ? outStart() : null; if (!isOut || definition != null) { _code_.Add(@" "); _code_.Add(TypeNameDefinition); _code_.Add(@" {"); stringBuilder _PART_BODY_ = _code_; _code_ = new stringBuilder(); _if_ = false; if (IsMemberMap) { _if_ = true; } if (_if_) { _code_.Add(@" /// <summary> /// 成员位图 /// </summary> public struct memberMap : fastCSharp.setup.cSharp.IMemberMap<memberMap> { /// <summary> /// 成员位图 /// </summary> private byte[] map; /// <summary> /// 成员位图 /// </summary> /// <param name=""members"">成员集合</param> public memberMap(params member[] members) { map = new byte[(("); _code_.Add(MaxMemberIndex.ToString()); _code_.Add(@" >> 5) + 1) << 2]; foreach (member member in members) map[(int)member >> 3] |= (byte)(1 << ((int)member & 7)); } /// <summary> /// 成员位图 /// </summary> /// <returns>成员位图</returns> public memberMap Copy() { return new memberMap { map = this.map == null ? null : this.map.copy() }; } /// <summary> /// 是否默认全部成员有效 /// </summary> public bool IsDefault { get { return map == null; } } /// <summary> /// 序列化字节长度 /// </summary> public int SerializeSize { get { return (("); _code_.Add(MaxMemberIndex.ToString()); _code_.Add(@" >> 5) + 1) << 2; } } /// <summary> /// 设置成员索引,忽略默认成员 /// </summary> /// <param name=""memberIndex"">成员索引</param> public void SetMember(int memberIndex) { if (map == null) map = new byte[(("); _code_.Add(MaxMemberIndex.ToString()); _code_.Add(@" >> 5) + 1) << 2]; map[memberIndex >> 3] |= (byte)(1 << (memberIndex & 7)); } /// <summary> /// 设置成员,忽略默认成员 /// </summary> /// <param name=""member"">成员</param> public void SetMember(member member) { SetMember((int)member); } /// <summary> /// 清除成员,忽略默认成员 /// </summary> /// <param name=""memberIndex"">成员</param> public void ClearMember(member member) { ClearMember((int)member); } /// <summary> /// 清除成员索引,忽略默认成员 /// </summary> /// <param name=""memberIndex"">成员索引</param> public void ClearMember(int memberIndex) { if (map != null) map[memberIndex >> 3] &= (byte)(byte.MaxValue ^ (1 << (memberIndex & 7))); } /// <summary> /// 成员交集运算,忽略默认成员 /// </summary> /// <param name=""memberMap"">成员位图</param> public unsafe void And(memberMap memberMap) { if (map != null) { if (memberMap.map != null) { fixed (byte* mapFixed = map, memberFixed = memberMap.map) { for (byte* write = mapFixed, end = mapFixed + map.Length, read = memberFixed; write != end; write += sizeof(uint), read += sizeof(uint)) { *(uint*)write &= *(uint*)read; } } } else map = null; } } /// <summary> /// 成员异或运算,忽略默认成员 /// </summary> /// <param name=""memberMap"">成员位图</param> public unsafe void Xor(memberMap memberMap) { if (map != null) { if (memberMap.map != null) { fixed (byte* mapFixed = map, memberFixed = memberMap.map) { for (byte* write = mapFixed, end = mapFixed + map.Length, read = memberFixed; write != end; write += sizeof(uint), read += sizeof(uint)) { *(uint*)write ^= *(uint*)read; } } } else map = null; } } /// <summary> /// 成员并集运算,忽略默认成员 /// </summary> /// <param name=""memberMap"">成员位图</param> public unsafe void Or(memberMap memberMap) { if (map != null) { if (memberMap.map != null) { fixed (byte* mapFixed = map, memberFixed = memberMap.map) { for (byte* write = mapFixed, end = mapFixed + map.Length, read = memberFixed; write != end; write += sizeof(uint), read += sizeof(uint)) { *(uint*)write |= *(uint*)read; } } } else map = null; } } /// <summary> /// 判断成员索引是否有效 /// </summary> /// <param name=""memberIndex"">成员索引</param> /// <returns>成员索引是否有效</returns> public bool IsMember(int memberIndex) { return map == null || (map[memberIndex >> 3] & (1 << (memberIndex & 7))) != 0; } /// <summary> /// 判断成员是否有效 /// </summary> /// <param name=""member"">成员</param> /// <returns>成员是否有效</returns> public bool IsMember(member member) { return IsMember((int)member); } /// <summary> /// 序列化 /// </summary> /// <param name=""stream"">数据流</param> public unsafe void Serialize(memoryStream stream) { fastCSharp.setup.cSharp.memberMap.Serialize(map, SerializeSize, stream); } /// <summary> /// 序列化 /// </summary> /// <param name=""stream"">数据流</param> public void Serialize(System.IO.Stream stream) { fastCSharp.setup.cSharp.memberMap.Serialize(map, SerializeSize, stream); } /// <summary> /// 反序列化 /// </summary> /// <param name=""data"">数据</param> /// <returns>结束位置</returns> public unsafe byte* DeSerialize(byte* data) { if (map == null) map = new byte[SerializeSize]; fixed (byte* mapFixed = map) fastCSharp.unsafer.memory.Copy(data, mapFixed, SerializeSize); return data + SerializeSize; } /// <summary> /// 成员获取器 /// </summary> /// <returns>成员获取器</returns> public fastCSharp.setup.cSharp.IMemberInfo MemberInfo { get { return new memberInfo(); } } }"); } _code_.Add(@" "); _if_ = false; if (Member32 != null) { _if_ = true; } if (_if_) { _code_.Add(@" /// <summary> /// 成员位图 /// </summary> public struct "); _code_.Add(Member32); _code_.Add(@" : fastCSharp.setup.cSharp.IMemberMap<"); _code_.Add(Member32); _code_.Add(@"> { /// <summary> /// 成员位图 /// </summary> private uint map; /// <summary> /// 成员位图 /// </summary> /// <param name=""members"">成员集合</param> public "); _code_.Add(Member32); _code_.Add(@"(params member[] members) { map = 0; foreach (member member in members) SetMember((int)member); } /// <summary> /// 成员位图 /// </summary> /// <returns>成员位图</returns> public "); _code_.Add(Member32); _code_.Add(@" Copy() { return new "); _code_.Add(Member32); _code_.Add(@" { map = map }; } /// <summary> /// 是否默认全部成员有效 /// </summary> public bool IsDefault { get { return map == 0; } } /// <summary> /// 序列化字节长度 /// </summary> public int SerializeSize { get { return sizeof(uint); } } /// <summary> /// 设置成员索引,忽略默认成员 /// </summary> /// <param name=""memberIndex"">成员索引</param> public void SetMember(int memberIndex) { map |= 1U << (int)memberIndex; } /// <summary> /// 清除成员索引,忽略默认成员 /// </summary> /// <param name=""memberIndex"">成员索引</param> public void ClearMember(int memberIndex) { map &= uint.MaxValue ^ (1U << (int)memberIndex); } /// <summary> /// 设置成员,忽略默认成员 /// </summary> /// <param name=""member"">成员</param> public void SetMember(member member) { SetMember((int)member); } /// <summary> /// 清除成员,忽略默认成员 /// </summary> /// <param name=""memberIndex"">成员</param> public void ClearMember(member member) { ClearMember((int)member); } /// <summary> /// 成员交集运算,忽略默认成员 /// </summary> /// <param name=""memberMap"">成员位图</param> public void And("); _code_.Add(Member32); _code_.Add(@" memberMap) { map &= memberMap.map; } /// <summary> /// 成员异或运算,忽略默认成员 /// </summary> /// <param name=""memberMap"">成员位图</param> public void Xor("); _code_.Add(Member32); _code_.Add(@" memberMap) { map ^= memberMap.map; } /// <summary> /// 成员并集运算,忽略默认成员 /// </summary> /// <param name=""memberMap"">成员位图</param> public void Or("); _code_.Add(Member32); _code_.Add(@" memberMap) { map |= memberMap.map; } /// <summary> /// 判断成员索引是否有效 /// </summary> /// <param name=""memberIndex"">成员索引</param> /// <returns>成员索引是否有效</returns> public bool IsMember(int memberIndex) { return map == 0 || (map & (1 << memberIndex)) != 0; } /// <summary> /// 判断成员是否有效 /// </summary> /// <param name=""member"">成员</param> /// <returns>成员是否有效</returns> public bool IsMember(member member) { return IsMember((int)member); } /// <summary> /// 序列化 /// </summary> /// <param name=""stream"">数据流</param> public void Serialize(memoryStream stream) { stream.Write(map); } /// <summary> /// 序列化 /// </summary> /// <param name=""stream"">数据流</param> public void Serialize(System.IO.Stream stream) { stream.Write(BitConverter.GetBytes(map), 0, sizeof(uint)); } /// <summary> /// 反序列化 /// </summary> /// <param name=""data"">数据</param> /// <returns>结束位置</returns> public unsafe byte* DeSerialize(byte* data) { map = *(uint*)data; return data + sizeof(uint); } /// <summary> /// 成员获取器 /// </summary> /// <returns>成员获取器</returns> public fastCSharp.setup.cSharp.IMemberInfo MemberInfo { get { return new memberInfo(); } } }"); } _code_.Add(@" "); _if_ = false; if (Member64 != null) { _if_ = true; } if (_if_) { _code_.Add(@" /// <summary> /// 成员位图 /// </summary> public struct "); _code_.Add(Member64); _code_.Add(@" : fastCSharp.setup.cSharp.IMemberMap<"); _code_.Add(Member64); _code_.Add(@"> { /// <summary> /// 成员位图 /// </summary> private ulong map; /// <summary> /// 成员位图 /// </summary> /// <param name=""members"">成员集合</param> public "); _code_.Add(Member64); _code_.Add(@"(params member[] members) { map = 0; foreach (member member in members) SetMember((int)member); } /// <summary> /// 成员位图 /// </summary> /// <returns>成员位图</returns> public "); _code_.Add(Member64); _code_.Add(@" Copy() { return new "); _code_.Add(Member64); _code_.Add(@" { map = map }; } /// <summary> /// 是否默认全部成员有效 /// </summary> public bool IsDefault { get { return map == 0; } } /// <summary> /// 序列化字节长度 /// </summary> public int SerializeSize { get { return sizeof(ulong); } } /// <summary> /// 设置成员索引,忽略默认成员 /// </summary> /// <param name=""memberIndex"">成员索引</param> public void SetMember(int memberIndex) { map |= 1UL << (int)memberIndex; } /// <summary> /// 清除成员索引,忽略默认成员 /// </summary> /// <param name=""memberIndex"">成员索引</param> public void ClearMember(int memberIndex) { map &= ulong.MaxValue ^ (1UL << (int)memberIndex); } /// <summary> /// 设置成员,忽略默认成员 /// </summary> /// <param name=""member"">成员</param> public void SetMember(member member) { SetMember((int)member); } /// <summary> /// 清除成员,忽略默认成员 /// </summary> /// <param name=""memberIndex"">成员</param> public void ClearMember(member member) { ClearMember((int)member); } /// <summary> /// 成员交集运算,忽略默认成员 /// </summary> /// <param name=""memberMap"">成员位图</param> public void And("); _code_.Add(Member64); _code_.Add(@" memberMap) { map &= memberMap.map; } /// <summary> /// 成员异或运算,忽略默认成员 /// </summary> /// <param name=""memberMap"">成员位图</param> public void Xor("); _code_.Add(Member64); _code_.Add(@" memberMap) { map ^= memberMap.map; } /// <summary> /// 成员并集运算,忽略默认成员 /// </summary> /// <param name=""memberMap"">成员位图</param> public void Or("); _code_.Add(Member64); _code_.Add(@" memberMap) { map |= memberMap.map; } /// <summary> /// 判断成员索引是否有效 /// </summary> /// <param name=""memberIndex"">成员索引</param> /// <returns>成员索引是否有效</returns> public bool IsMember(int memberIndex) { return map == 0 || (map & (1UL << memberIndex)) != 0; } /// <summary> /// 判断成员是否有效 /// </summary> /// <param name=""member"">成员</param> /// <returns>成员是否有效</returns> public bool IsMember(member member) { return IsMember((int)member); } /// <summary> /// 序列化 /// </summary> /// <param name=""stream"">数据流</param> public void Serialize(memoryStream stream) { stream.Write(map); } /// <summary> /// 序列化 /// </summary> /// <param name=""stream"">数据流</param> public void Serialize(System.IO.Stream stream) { stream.Write(BitConverter.GetBytes(map), 0, sizeof(ulong)); } /// <summary> /// 反序列化 /// </summary> /// <param name=""data"">数据</param> /// <returns>结束位置</returns> public unsafe byte* DeSerialize(byte* data) { map = *(ulong*)data; return data + sizeof(ulong); } /// <summary> /// 成员获取器 /// </summary> /// <returns>成员获取器</returns> public fastCSharp.setup.cSharp.IMemberInfo MemberInfo { get { return new memberInfo(); } } }"); } _code_.Add(@" /// <summary> /// 成员 /// </summary> public enum member {"); { fastCSharp.setup.memberInfo[] _value1_ = default(fastCSharp.setup.memberInfo[]); _value1_ = Members; if (_value1_ != null) { int _loopIndex1_ = _loopIndex_, _loopCount1_ = _loopCount_; _loopIndex_ = 0; _loopCount_ = _value1_.Length; foreach (fastCSharp.setup.memberInfo _value2_ in _value1_) { _if_ = false; { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { { System.Type _value4_ = _value3_.Type; if (_value4_ != null) { if (!(bool)_value4_.IsGenericParameter) { _if_ = true; } } } } } if (_if_) { _code_.Add(@" [fastCSharp.setup.cSharp.member(Type = typeof("); { fastCSharp.setup.memberType _value3_ = _value2_.MemberType; if (_value3_ != null) { _code_.Add(_value3_.FullName); } } _code_.Add(@"))]"); } _code_.Add(@" "); _code_.Add(_value2_.MemberName); _code_.Add(@" = "); _code_.Add(_value2_.MemberIndex.ToString()); _code_.Add(@","); ++_loopIndex_; } _loopIndex_ = _loopIndex1_; _loopCount_ = _loopCount1_; } } _code_.Add(@" } /// <summary> /// 成员信息获取器 /// </summary> private struct memberInfo : fastCSharp.setup.cSharp.IMemberInfo { /// <summary> /// 获取成员名称 /// </summary> /// <param name=""memberIndex"">成员索引</param> /// <returns>成员名称</returns> public string GetName(int memberIndex) { return ((member)memberIndex).ToString(); } /// <summary> /// 获取成员类型 /// </summary> /// <param name=""memberIndex"">成员索引</param> /// <returns>成员类型</returns> public Type GetType(int memberIndex) { return fastCSharp.Enum<member, fastCSharp.setup.cSharp.member>.Array(memberIndex).Type; } /// <summary> /// 所有成员数量 /// </summary> public int MemberCount { get { return "); _code_.Add(MaxMemberIndex.ToString()); _code_.Add(@" + 1; } } }"); _partCodes_["BODY"] = _code_.ToString(); _code_ = _PART_BODY_; _code_.Add(_partCodes_["BODY"]); _code_.Add(@" }"); outEnd(definition); } }
protected void Page_Load(object sender, EventArgs e) { if (Convert.ToString(Session["stdUserName"]) == "") { Response.Write("<script language=javascript>location='../TS_login.aspx'</script>"); return; } if (!IsPostBack) { SqlConnection con1 = new SqlConnection(ConfigurationManager.AppSettings["strcon"]); con1.Open(); SqlDataAdapter sda3 = new SqlDataAdapter("select studyYear from ts_xs_studyYear ", con1); DataSet ds3 = new DataSet(); sda3.Fill(ds3, "ts_xs_studyYear"); this.studyYear.DataSource = ds3.Tables["ts_xs_studyYear"]; this.studyYear.DataTextField = "studyYear"; this.studyYear.DataBind(); this.studyYear.Text = Session["currentlyStudyYear"].ToString(); con1.Close(); this.Label1.Text = Session["stdUserName"].ToString(); this.Label2.Text = Session["stdName"].ToString(); this.Label3.Text = Session["stdSpeciality"].ToString(); this.Label4.Text = Session["stdCollege"].ToString(); this.Label5.Text = Session["stdTeachedClass"].ToString(); this.Label6.Text = Session["stdAdminClass"].ToString(); this.stdGrade.Text = Session["stdGrade"].ToString(); for (int i = 1; i <= 7; i++) { for (int j = 1; j <= 12; j++) { SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["strcon"]); con.Open(); a[i, j] = i * 12 + j; string studyYear = Session["currentlyStudyYear"].ToString(); int semester = Convert.ToInt32(Session["currentlySemester"]); SqlCommand sd7 = new SqlCommand("select count(*) from ts_xs_courseTable where courseTableName='" + Session["stdAdminClass"].ToString() + "'and weekday = '" + i + "'and daytime= '" + j + "' and studyYear = '" + studyYear + "' and semester ='" + semester + "'", con); int count = Convert.ToInt32(sd7.ExecuteScalar()); if (count > 0) { SqlCommand sd7_1 = new SqlCommand("select courseName from ts_xs_courseTable where courseTableName='" + Session["stdAdminClass"] + "'and weekday = '" + i + "'and daytime= '" + j + "' and studyYear = '" + studyYear + "' and semester ='" + semester + "'", con); string courseName = Convert.ToString(sd7_1.ExecuteScalar()); SqlCommand sd7_2 = new SqlCommand("select weekPeriod from ts_xs_courseTable where courseTableName='" + Session["stdAdminClass"] + "'and weekday = '" + i + "'and daytime= '" + j + "' and studyYear = '" + studyYear + "' and semester ='" + semester + "'", con); string weekPeriod = Convert.ToString(sd7_2.ExecuteScalar()); SqlCommand sd7_3 = new SqlCommand("select courseDatefrom from ts_xs_courseTable where courseTableName='" + Session["stdAdminClass"] + "'and weekday = '" + i + "'and daytime= '" + j + "' and studyYear = '" + studyYear + "' and semester ='" + semester + "'", con); string courseDatefrom = Convert.ToString(sd7_3.ExecuteScalar()); SqlCommand sd7_4 = new SqlCommand("select teacherName from ts_xs_courseTable where courseTableName='" + Session["stdAdminClass"] + "'and weekday = '" + i + "'and daytime= '" + j + "' and studyYear = '" + studyYear + "' and semester ='" + semester + "'", con); string teacherName = Convert.ToString(sd7_4.ExecuteScalar()); SqlCommand sd7_5 = new SqlCommand("select coursePlace from ts_xs_courseTable where courseTableName='" + Session["stdAdminClass"] + "'and weekday = '" + i + "'and daytime= '" + j + "' and studyYear = '" + studyYear + "' and semester ='" + semester + "'", con); string coursePlace = Convert.ToString(sd7_5.ExecuteScalar()); System.Text.StringBuilder std = new StringBuilder(); std.Append(courseName); std.Append("<br>"); std.Append(weekPeriod); std.Append(courseDatefrom); std.Append("<br>"); std.Append(teacherName); std.Append("<br>"); std.Append(coursePlace); sb.Add(new stringItem(std, a[i, j])); con.Close(); } else { System.Text.StringBuilder std1 = new StringBuilder(); stringItem si1 = new stringItem(std1, a[i, j]); con.Close(); } } } stringBuilder u = sb.getText(sb, 13); foreach (stringItem p in u) { this.Label7.Text = p.getText(); } stringBuilder u1 = sb.getText(sb, 14); foreach (stringItem p in u) { this.Label8.Text = p.getText(); } } }