示例#1
0
        private List <string> CreateHbmFiles(string assemblyName)
        {
            var           x           = AppDomain.CurrentDomain.GetAssemblies().Single(a => a.FullName.StartsWith("ArchAngel.NHibernateHelper"));
            var           utilityType = x.GetType("ArchAngel.NHibernateHelper.MappingFiles.Version_2_2.Utility");
            var           method      = utilityType.GetMethod("CreateMappingXMLFrom");
            List <string> files       = new List <string>();

            var provider = (ProviderInfo)ArchAngel.Interfaces.SharedData.CurrentProject.Providers.Single(p => p.Name == "Entity Provider");

            foreach (var entity in provider.MappingSet.EntitySet.Entities)
            {
                // Parameters
                string entityNamespace = assemblyName.Split('.')[0];
                bool   autoImport      = false;
                ArchAngel.Interfaces.NHibernateEnums.TopLevelAccessTypes  defaultAccess  = Interfaces.NHibernateEnums.TopLevelAccessTypes.property;
                ArchAngel.Interfaces.NHibernateEnums.TopLevelCascadeTypes defaultCascade = Interfaces.NHibernateEnums.TopLevelCascadeTypes.all;
                bool defaultLazy = true;

                string xml = (string)method.Invoke(null, new object[] { entity, assemblyName, entityNamespace, autoImport, defaultAccess, defaultCascade, defaultLazy });
                //files.Add(xml);
                //xml = xml.Replace(string.Format(@"assembly=""{0}""", assemblyName), "");
                string filename = Path.Combine(ArchAngel.Interfaces.SharedData.CurrentProject.TempFolder, Path.GetFileNameWithoutExtension(Path.GetTempFileName()) + ".hbm.xml");

                File.WriteAllText(filename, xml, new System.Text.UTF8Encoding(false));
                files.Add(filename);
            }
            return(files);
        }
 public static void SetProjectDefaultAccess(this IWorkbenchProject project, ArchAngel.Interfaces.NHibernateEnums.TopLevelAccessTypes access)
 {
     project.SetUserOption("DefaultAccess", access);
 }