internal void Register(JsonEntityContext context, IEnumerable <Type> supportedTypes) { foreach (var type in supportedTypes) { TypeContexts[type] = context; } }
public static JsonEntityContext Initialize(Assembly @assembly, string @namespace, string storagePath, Action <ModelContext> onContextCreated = null) { var contextProvider = new ModelContextProvider(); var entityContext = new JsonEntityContext(storagePath, false, GetEntityTypes(@assembly, @namespace).ToArray()); contextProvider.CreateContext += (s, args) => { // TODO: Reset entity context when a model context is created? var typeProvider = new JsonModelTypeProvider(@assembly, @namespace, entityContext); var ctx = args.Context = new ModelContext(typeProvider); if (onContextCreated != null) { onContextCreated(ctx); } }; return(entityContext); }
internal static void OnInitNew(IJsonEntity entity) { JsonEntityContext.GetContextForEntity(entity).Add(entity); }
internal static void OnInitExisting(IJsonEntity entity) { JsonEntityContext.GetContextForEntity(entity).Initialize(entity); }
internal JsonModelType(JsonEntityContext entityContext, string @namespace, Type type, string scope, string format) : base(@namespace, type, scope, format) { this._entityContext = entityContext; this._type = type; }
internal JsonModelTypeProvider(Assembly @assembly, string @namespace, JsonEntityContext entityContext) : base(@namespace, JsonModel.GetEntityTypes(@assembly, @namespace), null, true) { EntityContext = entityContext; }
internal JsonModelTypeProvider(Assembly @assembly, JsonEntityContext entityContext) : base(null, JsonModel.GetEntityTypes(@assembly), null, true) { EntityContext = entityContext; }