Maison >développement back-end >C++ >Comment puis-je générer automatiquement des énumérations C# à partir des valeurs de recherche de base de données à l'aide de l'accès aux données de la bibliothèque d'entreprise ?
Utilisation de C# et de l'Enterprise Library Data Access Layer (ELD) pour créer automatiquement des énumérations pour les valeurs de recherche de base de données
Cet article décrit comment exploiter la couche d'accès aux données (ELD) de la bibliothèque d'entreprise pour créer automatiquement une énumération à partir de valeurs stockées dans une table de recherche de base de données.
Génération dynamique d'assemblage d'énumération
Créez un projet d'application console distinct au sein de votre solution. Ce projet est responsable de la génération de l'assemblage d'énumération. Définissez un EnumBuilder
et utilisez MyDataAdapter
et MyDataSet
pour récupérer les données de la base de données. Créez un littéral d'énumération pour chaque ligne de la base de données, ajoutez-les à EnumBuilder
et enfin créez l'énumération. Enregistrez l'assemblage généré à l'emplacement souhaité.
Exemple de code :
<code class="language-csharp">// 获取当前应用程序域。 AppDomain currentDomain = AppDomain.CurrentDomain; // 创建一个动态程序集。 AssemblyName name = new AssemblyName("MyEnums"); AssemblyBuilder assemblyBuilder = currentDomain.DefineDynamicAssembly(name, AssemblyBuilderAccess.RunAndSave); // 定义一个动态模块。 ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule(name.Name, name.Name + ".dll"); // 定义一个枚举。 EnumBuilder myEnum = moduleBuilder.DefineEnum("EnumeratedTypes.MyEnum", TypeAttributes.Public, typeof(int)); // 从数据库获取数据。 MyDataAdapter someAdapter = new MyDataAdapter(); MyDataSet.MyDataTable myData = myDataAdapter.GetMyData(); foreach (MyDataSet.MyDataRow row in myData.Rows) { myEnum.DefineLiteral(row.Name, row.Key); } // 创建枚举。 myEnum.CreateType(); // 保存程序集。 assemblyBuilder.Save(name.Name + ".dll");</code>
Ajouter une référence à l'assembly généré
Référencez les assemblys générés dynamiquement dans d’autres projets de la solution. Cela vous permettra d'utiliser les énumérations définies dans l'assembly généré et d'inclure la fonctionnalité IntelliSense.
Configurer les événements post-build
Ajoutez un événement post-build dans le projet EnumeratedTypes
. Cet événement démarrera le projet et générera des MyEnums.dll
fichiers après chaque build.
Autres notes
Configurez l'ordre de construction des projets afin que les EnumeratedTypes
projets soient construits en premier. Cela évitera tout problème de dépendance lié à l’assembly généré.
En suivant ces étapes, vous pouvez créer automatiquement des énumérations basées sur les valeurs d'une table de recherche de base de données, garantissant ainsi que vos énumérations restent synchronisées avec la base de données sans avoir besoin de mises à jour manuelles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!