/// <summary> /// Вносит класс напрямую в кэш /// </summary> /// <param name="cls"></param> public void Set(BSharpRuntimeClass cls){ if (!Cache.ContainsKey(cls.Fullname)){ Cache[cls.Fullname] = new BSharpRuntimeClassDescriptor{ Fullname = cls.Fullname, CachedClass = cls, }; } else{ Cache[cls.Fullname].CachedClass = cls; } }
public void CanSetupSimplyHeader() { var cls = new BSharpRuntimeClass { Definition = new XElement(BSharpRuntimeDefaults.BSHARP_CLASS_HEADER, XElement.Parse("<a code='X' fullcode='N.S.X'/>")) }; Assert.AreEqual("X", cls.Name); Assert.AreEqual("N.S", cls.Namespace); Assert.AreEqual("N.S.X", cls.Fullname); Assert.NotNull(cls.RuntimeDescriptor); Assert.AreEqual(RuntimeClassResolutionType.NotDefined, cls.RuntimeDescriptor.ResolutionType); }
/// <summary> /// Вносит класс напрямую в кэш /// </summary> /// <param name="cls"></param> public void Set(BSharpRuntimeClass cls) { if (!Cache.ContainsKey(cls.Fullname)) { Cache[cls.Fullname] = new BSharpRuntimeClassDescriptor { Fullname = cls.Fullname, CachedClass = cls, }; } else { Cache[cls.Fullname].CachedClass = cls; } }
private IBSharpRuntimeProvider GetPrecompileClsProvider() { var provider = new BSharpGenericClassProvider(); foreach (var cls in _context.PreparedContext.Get(BSharpContextDataType.Working)) { var rcls = new BSharpRuntimeClass { Name = cls.Name, Namespace = cls.Namespace, PrototypeCode = cls.Prototype, Loaded = true, Definition = cls.Compiled }; provider.Set(rcls); } return(provider); }
public static BSharpRuntimeClass CreateCls <T>(string name, IContainer c = null) { var n = typeof(T).Name; if (typeof(object) == typeof(T)) { if (!string.IsNullOrWhiteSpace(name)) { n = name.Replace(".", "_"); } } var rt = typeof(T).AssemblyQualifiedName; if (!string.IsNullOrWhiteSpace(name)) { rt = name; } var cls = new BSharpRuntimeClass(c) { Definition = XElement.Parse(string.Format("<a code='{0}' fullcode='my.test.{0}' runtime='{1}'/>", n, rt)) }; return(cls); }