//loader : CustomLoader, filepath参数:(ref类型)输入是require的参数,如果需要支持调试,需要输出真实路径。 // 返回值:如果返回null,代表加载该源下无合适的文件,否则返回UTF8编码的byte[] public void AddLoader(CustomLoader loader) { if (!customLoaders.Contains(loader)) { customLoaders.Add(loader); } }
void Awake() { luaTSrc = luaEnv.NewTable(); CustomLoader.AddLoader(luaEnv); luaEnv.DoString("require('Utils.Global')"); // 为每个脚本设置一个独立的环境,可一定程度上防止脚本间全局变量、函数冲突 LuaTable meta = luaEnv.NewTable(); meta.Set("__index", luaEnv.Global); luaTSrc.SetMetaTable(meta); meta.Dispose(); luaTSrc.Set("self", this); foreach (var injection in injections) { luaTSrc.Set(injection.name, injection.value); } luaEnv.DoString(m_srcLua.text, m_srcLua.name, luaTSrc); Action luaAwake = luaTSrc.Get <Action>("Awake"); luaTSrc.Get("Start", out luaStart); luaTSrc.Get("Enable", out luaEnable); luaTSrc.Get("Diable", out luaDisable); luaTSrc.Get("Update", out luaUpdate); luaTSrc.Get("OnAppPause", out luaOnAppPause); luaTSrc.Get("OnDestroy", out luaOnDestroy); luaAwake?.Invoke(); }
public override void Append(ISqlCommand command) { if (_prefixLoader == null) { var prefixQuery = (SqlQueryImpl)((ISession)Session) // this SQL query fragment will prepend every SELECT query in multiquery/multicriteria .CreateSQLQuery("\nOPEN :crsr FOR\n") // this "exotic" parameter type will actually mean output refcursor .SetParameter("crsr", 0, new DecimalType(new SqlType(DbType.VarNumeric))); _prefixQueryParameters = prefixQuery.GetQueryParameters(); var querySpecification = prefixQuery.GenerateQuerySpecification(_prefixQueryParameters.NamedParameters); _prefixLoader = new CustomLoader(new SQLCustomQuery(querySpecification.SqlQueryReturns, querySpecification.QueryString, querySpecification.QuerySpaces, Session.Factory), Session.Factory); } var prefixCommand = _prefixLoader.CreateSqlCommand(_prefixQueryParameters, Session); Commands.Add(prefixCommand); Commands.Add(command); _sqlStringBuilder.Add(prefixCommand.Query); _sqlStringBuilder.Add(command.Query).Add(";"); }
public SqlTranslator(ISQLQuery sqlQuery, ISessionFactoryImplementor sessionFactory) { var sqlQueryImpl = (SqlQueryImpl)sqlQuery; NativeSQLQuerySpecification sqlQuerySpec = sqlQueryImpl.GenerateQuerySpecification(sqlQueryImpl.NamedParams); var sqlCustomQuery = new SQLCustomQuery(sqlQuerySpec.SqlQueryReturns, sqlQuerySpec.QueryString, sqlQuerySpec.QuerySpaces, sessionFactory); loader = new CustomLoader(sqlCustomQuery, sessionFactory); }
public void ParameterCustomLoader() { CustomLoader loader = new CustomLoader(); using (var reader = new TypefaceReader(loader)) { Assert.IsNotNull(reader); Assert.IsNotNull(reader.Loader); Assert.IsInstanceOfType(reader.Loader, typeof(CustomLoader), "The custom constructor should be set so it can be used"); } }
public override void ListCustomQuery(ICustomQuery customQuery, QueryParameters queryParameters, IList results) { using (BeginProcess()) { var loader = new CustomLoader(customQuery, Factory); var success = false; try { ArrayHelper.AddAll(results, loader.List(this, queryParameters)); success = true; } finally { AfterOperation(success); } temporaryPersistenceContext.Clear(); } }
public override async Task ListCustomQueryAsync(ICustomQuery customQuery, QueryParameters queryParameters, IList results, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); using (BeginProcess()) { var loader = new CustomLoader(customQuery, Factory); var success = false; try { ArrayHelper.AddAll(results, await(loader.ListAsync(this, queryParameters, cancellationToken)).ConfigureAwait(false)); success = true; } finally { await(AfterOperationAsync(success, cancellationToken)).ConfigureAwait(false); } temporaryPersistenceContext.Clear(); } }
public override void ListCustomQuery(ICustomQuery customQuery, QueryParameters queryParameters, IList results) { using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); CustomLoader loader = new CustomLoader(customQuery, Factory); bool success = false; try { ArrayHelper.AddAll(results, loader.List(this, queryParameters)); success = true; } finally { AfterOperation(success); } temporaryPersistenceContext.Clear(); } }
public override void ListCustomQuery(ICustomQuery customQuery, QueryParameters queryParameters, IList results) { using (BeginProcess()) { // We need to flush the batcher. Otherwise it may have pending operations which will not already have reached the database, // and the query may yield stale data. Flush(); var loader = new CustomLoader(customQuery, Factory); var success = false; try { ArrayHelper.AddAll(results, loader.List(this, queryParameters)); success = true; } finally { AfterOperation(success); } temporaryPersistenceContext.Clear(); } }
public override async Task ListCustomQueryAsync(ICustomQuery customQuery, QueryParameters queryParameters, IList results, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); using (BeginProcess()) { // We need to flush the batcher. Otherwise it may have pending operations which will not already have reached the database, // and the query may yield stale data. await(FlushAsync(cancellationToken)).ConfigureAwait(false); var loader = new CustomLoader(customQuery, Factory); var success = false; try { ArrayHelper.AddAll(results, await(loader.ListAsync(this, queryParameters, cancellationToken)).ConfigureAwait(false)); success = true; } finally { await(AfterOperationAsync(success, cancellationToken)).ConfigureAwait(false); } temporaryPersistenceContext.Clear(); } }
//loader : CustomLoader�� filepath��������ref���ͣ�������require�IJ����������Ҫ֧�ֵ��ԣ���Ҫ�����ʵ·���� // ����ֵ���������null���������ظ�Դ�����ʵ��ļ�������UTF8�����byte[] public void AddLoader(CustomLoader loader) { customLoaders.Add(loader); }
public void RemoveLoad(CustomLoader loader) { customLoaders.Remove(loader); }
public static void RegisterCustomLoader(Type loadedType, CustomLoader function) { customLoaders[loadedType] = function; }
public static void AddLoader(CustomLoader loader) { LuaFile.AddLoader(loader); }
public ContentHelper(ContentManager contentmanager = null, CustomLoader customLoader = null, string extention =null) { this.contentmanager = contentmanager; this.customLoader = customLoader; if (!string.IsNullOrEmpty(extention)) { SupportedExtentions.Add(extention); } }