virtual protected object InvokeILMethodByDomain() { if (appdomain == null || appdomain.IsCleared) { DLog.LogErrorFormat("App已被清除.请检查是否有未清除的委托注册.AppName = {0},Class = {1},Method = {2}", AppName, ClassName, MethodName); appdomain = null; return(null); } try { if (method.HasThis) { return(appdomain.Invoke(method, instance, mParams)); } else { return(appdomain.Invoke(method, null, mParams)); } } catch (System.Exception _error) { DLog.LogErrorFormat("委托调用异常.AppName = {0},Class = {1},Method = {2},error = {3}", AppName, ClassName, MethodName, _error); } return(null); }
private int ReadByType(SocketDataHeadType pType, byte[] pBuffer, int pOffset) { int ret = -1; switch (pType) { case SocketDataHeadType.type_short: ret = BufferBase.SReadShort(pBuffer, pOffset); break; case SocketDataHeadType.type_ushort: ret = BufferBase.SReadUShort(pBuffer, pOffset); break; case SocketDataHeadType.type_int: ret = BufferBase.SReadInt(pBuffer, pOffset); break; default: DLog.LogErrorFormat("ReadByType -> Type error : {0}", pType); break; } return(ret); }
override public K GetCSLEDelegate <K>(string _Function, IType _classtype, object _target) { if (_classtype == null || _target == null) { return(default(K)); } object ret = null; MethodInfo methodctor = (MethodInfo)GetLMethod(_classtype, _Function, 0); if (methodctor == null) { return(default(K)); } try { ret = Delegate.CreateDelegate(typeof(K), _target, methodctor); return((K)ret); } catch (Exception _error) { DLog.LogErrorFormat("_classtype = {0},_Function = {1},error = {2}", _classtype.Name, _Function, _error); return(default(K)); } }
public SocketDataHeadType GetTypeAndSize(System.Type pType, out int pSize) { SocketDataHeadType ret = SocketDataHeadType.none; switch (pType.Name) { case "Int16": ret = SocketDataHeadType.type_short; pSize = 2; break; case "UInt16": ret = SocketDataHeadType.type_ushort; pSize = 2; break; case "Int32": ret = SocketDataHeadType.type_int; pSize = 4; break; default: pSize = -1; DLog.LogErrorFormat("GetTypeAndSize -> Type error : {0}", pType.Name); break; } return(ret); }
static byte[] LoadBytesFromBundle(string pFileName) { byte[] ret = null; string tfullname = GetFullPath(pFileName); AssetBundle tinfobundle = AssetBundle.LoadFromFile(tfullname); if (tinfobundle != null) { TextAsset tass = tinfobundle.LoadAsset <TextAsset>(pFileName); if (tass != null) { ret = tass.bytes; } else { DLog.LogErrorFormat("AssetBundle.LoadAsset<TextAsset>() 文件读取失败 name = {0}", tfullname); } tinfobundle.Unload(false); } else { DLog.LogError("文件读取失败 name = " + tfullname); } return(ret); }
private void SetAppName(string _appname) { mAppName = _appname; AssetBundle tbundle = AssetBundle.LoadFromFile(GetFullPath(mAppName)); if (tbundle != null) { Manifest = tbundle.LoadAsset <AssetBundleManifest>("AssetBundleManifest"); tbundle.Unload(false); } else { DLog.LogErrorFormat("未能加载App资源列表 AppName = {0}", mAppName); } }
public void BeginSend(byte[] buffer, int offset, int size) { try { SocketError errorCode = SocketError.Success; var ar = socket.BeginSend(buffer, offset, size, SocketFlags.None, out errorCode, sendCallback, buffer); if (errorCode != SocketError.Success) { DLog.LogErrorFormat("TCP Send Error.{0}", errorCode); } } catch (System.Exception erro) { DLog.LogFormat("TCP Send Error.{0}", erro); } }
public void LoadScriptFormMemory(byte[] _dllbytes, byte[] _pdbbytes) { if (mCore.SManager.ProjectLoaded) { DLog.LogError("脚本不可重复加载."); return; } if (_dllbytes != null && _pdbbytes != null) { mCore.SManager.LoadProjectByBytes(_dllbytes, _pdbbytes); StartMain(StartClass, StartFun); } else { DLog.LogErrorFormat("LoadScriptFormMemory(byte[] _dllbytes = }|,byte[] _pdbbytes){}"); } }
private void HandleRecvQueue() { recvQueue.Switch(); while (!recvQueue.Empty()) { var recvobject = recvQueue.Pop(); int ret = kcpObject.Input(recvobject.bytes, recvobject.length); cacheBytesQue.Enqueue(recvobject); if (ret < 0) { //收到的不是一个正确的KCP包 if (IsShowDebugLog) { DLog.Log("Error kcp package."); } return; } needKcpUpdateFlag = true; for (int size = kcpObject.PeekSize(); size > 0; size = kcpObject.PeekSize()) { if (size > 1048576) { DLog.LogErrorFormat("The size is too long.size = {0}", size); } if (kcpRecvBuffer.Length < size) { int tnewlen = size + kcpRecvBuffer.Length; kcpRecvBuffer = new byte[tnewlen]; } else { kcpRecvBuffer.Initialize(); } int treclen = kcpObject.Recv(kcpRecvBuffer, size); if (treclen > 0) { PopRecData(kcpRecvBuffer, treclen); } } } }
override public bool Send(byte[] pBuffer, int pSize) { if (mSocket == null) { return(false); } try { SocketError errorCode = SocketError.Success; var ar = mSocket.BeginSend(pBuffer, 0, pSize, SocketFlags.None, out errorCode, sendCallBack, pBuffer); if (errorCode != SocketError.Success) { DLog.LogErrorFormat("TCP Send Error.{0}", errorCode); } return(errorCode == SocketError.Success); } catch (System.Exception erro) { DLog.LogFormat("TCP Send Error.{0}", erro); } return(false); }
public void LoadScriptFormFile(string _filename) { if (mCore.SManager.ProjectLoaded) { DLog.LogError("脚本不可重复加载."); return; } byte[] dllbytes = null; byte[] pdbbytes = null; string tdllPath = mCore.AppPersistentScriptDataPath + _filename; if (System.IO.File.Exists(tdllPath + ".dll")) { dllbytes = System.IO.File.ReadAllBytes(tdllPath + ".dll"); pdbbytes = System.IO.File.ReadAllBytes(tdllPath + ".pdb"); } if (dllbytes == null || pdbbytes == null) { DLog.LogErrorFormat("LoadScriptFormFile{dllbytes = {0},pdbbytes = {1}}", dllbytes, pdbbytes); return; } AESReader tdllreader = new AESReader(dllbytes); AESReader tpdbreader = new AESReader(pdbbytes); dllbytes = tdllreader.ReadAllBytes(); pdbbytes = tpdbreader.ReadAllBytes(); tdllreader.Dispose(); tpdbreader.Dispose(); LoadScriptFormMemory(dllbytes, pdbbytes); }
public byte[] GetByte(SocketDataHeadType pType, int pSrc) { byte[] ret = null; switch (pType) { case SocketDataHeadType.type_short: ret = BufferBase.GetBuffer((short)pSrc); break; case SocketDataHeadType.type_ushort: ret = BufferBase.GetBuffer((ushort)pSrc); break; case SocketDataHeadType.type_int: ret = BufferBase.GetBuffer((int)pSrc); break; default: DLog.LogErrorFormat("SocketData GetByte -> Type error : {0}", pType); break; } return(ret); }