public void Serialize(AssemblyMetadataBase data, string databaseName) { Clear(databaseName); using (DataContext dataContext = new DataContext(databaseName)) { AssemblyMetadataDB assembly = (AssemblyMetadataDB)data; dataContext.AssemblyModel.Add(assembly); dataContext.SaveChanges(); } }
public static void Initialize(TestContext testContext) { dllPath = "./../../../DllForTests/TPA.ApplicationArchitecture.dll"; pathTarget = "./../../../UnitTestXmlSerializing/bin/Debug/xmlTest.xml"; serializer = new XMLSerializer(); assemblyMetadataBase = new AssemblyMetadataXml(); reflector = new Reflector(dllPath); serializer.Serialize(AssemblyMetadataMapper.MapToSerialize(reflector.AssemblyMetadata, assemblyMetadataBase.GetType()), pathTarget); assemblyMetadata = AssemblyMetadataMapper.MapToDeserialize(serializer.Deserialize(pathTarget)); }
public void Serialize(AssemblyMetadataBase data, string path) { AssemblyMetadataXml assembly = data as AssemblyMetadataXml; string jsonString = JsonConvert.SerializeObject(assembly, Formatting.Indented, new JsonSerializerSettings { PreserveReferencesHandling = PreserveReferencesHandling.Objects }); XDocument document = JsonConvert.DeserializeXNode(jsonString, "Root", true); document.Save(path); }
public static AssemblyMetadata MapToDeserialize(AssemblyMetadataBase metadata) { AssemblyMetadata assemblyModel = new AssemblyMetadata(); Type type = metadata.GetType(); assemblyModel.Name = metadata.Name; PropertyInfo namespaceMetadatasProperty = type.GetProperty("Namespaces", BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly); List <NamespaceMetadataBase> namespaces = (List <NamespaceMetadataBase>)ConvertionUtilities.ConvertList(typeof(NamespaceMetadataBase), (IList)namespaceMetadatasProperty?.GetValue(metadata)); if (namespaces != null) { assemblyModel.Namespaces = namespaces.Select(n => new NamespaceMetadataMapper().MapToDeserialize(n)).ToList(); } return(assemblyModel); }
public static void Initialize(TestContext testContext) { string _DBRelativePath = @"DatabaseForTests\TestDatabase.mdf"; string _TestingWorkingFolder = Environment.CurrentDirectory; string _DBPath = Path.Combine(_TestingWorkingFolder, _DBRelativePath); FileInfo _databaseFile = new FileInfo(_DBPath); Assert.IsTrue(_databaseFile.Exists, $"{Environment.CurrentDirectory}"); databasePath = $@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename={_DBPath};Integrated Security = True; Connect Timeout = 30;"; dllPath = "./../../../DllForTests/TPA.ApplicationArchitecture.dll"; serializer = new DatabaseSerializer(); assemblyMetadataBase = new AssemblyMetadataDB(); reflector = new Reflector(dllPath); serializer.Serialize(AssemblyMetadataMapper.MapToSerialize(reflector.AssemblyMetadata, assemblyMetadataBase.GetType()), databasePath); assemblyMetadata = AssemblyMetadataMapper.MapToDeserialize(serializer.Deserialize(databasePath)); }
public AssemblyMetadataBase Deserialize(string databaseName) { using (DataContext dataContext = new DataContext(databaseName)) { dataContext.Configuration.ProxyCreationEnabled = false; AssemblyMetadataBase assembly = dataContext.AssemblyModel.Include(a => a.Namespaces).ToList().FirstOrDefault(); dataContext.Namespaces .Include(n => n.Types).Load(); dataContext.Types .Include(t => t.Constructors).Include(t => t.Methods) .Include(t => t.BaseType).Include(t => t.DeclaringType) .Include(t => t.Fields).Include(t => t.Properties) .Include(t => t.GenericArguments).Include(t => t.ImplementedInterfaces) .Include(t => t.Modifiers).Include(t => t.NestedTypes).Load(); dataContext.Methods .Include(m => m.GenericArguments).Include(m => m.Parameters) .Include(m => m.Modifiers).Include(m => m.ReturnType).Load(); dataContext.Parameters .Include(p => p.TypeMetadata).Load(); dataContext.Properties .Include(p => p.TypeMetadata).Load(); return(assembly); } }