属性的动态参数

发布于 2024-09-25 10:12:19 字数 533 浏览 8 评论 0原文

我知道属性声明的参数必须是常量表达式并在编译时解析。但是,我可以使用“编译时”的概念吗? ASP.net 有 App_Code 文件夹的概念。从它的描述来看,即使应用程序正在运行,您也可以将 .cs 文件放入其中,并且它将被引入并编译。是否可以使用此机制动态创建可在属性声明中使用的 Enum 或 const 数组?

[SomeAttribute(ValidTypes.SomeType)]
public class Foo
{
}

基本上,我想动态增长 ValidTypes 中的有效类型,而不必重新编译引用它的所有组件。我需要使其与数据库表中的值列表保持同步。所以,我的问题是,我可以将包含 Enum 或 const 字符串数组定义的 .cs 文件放入 App_Code 中并让它自动显示吗?或者更好的是,.Net 用于执行此操作的机制是否可以在其他地方调用,这样我就不必在 ASP.Net 应用程序中执行此操作?

I know parameters to attribute declarations have to be a constant expression and resolved at compile time. However, can I play with the concept of 'compile time'? ASP.net has the concept of App_Code folder. It looks from it's description like you can drop .cs files into it, even while the app is running, and it will be brought in and compiled. Is it possible to use this mechanism to dynamically create an Enum or const array that can be used in an attribute declaration?

[SomeAttribute(ValidTypes.SomeType)]
public class Foo
{
}

Basically, I want to dynamically grow the valid types in ValidTypes without having to recompile all components that reference it. And I need to keep it in sync with a list of values in a database table. So, my question is, can I drop a .cs file with the definition for an Enum or const string array into App_Code and have it automagically show up? Or better yet, is the mechanism .Net uses to do this available to be called elsewhere so I don't have to do it in an ASP.Net app?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

恋你朝朝暮暮 2024-10-02 10:12:19

即使可以,您也必须重新编译应用程序才能使用附加值。听起来您想要的是属性中的代码来查找动态值。

even if you could, you'd have to recompile the app to use the added values. sounds like what you want is the code in the attribute to look up the dynamic values.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文