加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

如何从ASP.NET MVC网站中生成可下载的c#类?

发布时间:2020-12-16 07:45:46 所属栏目:asp.Net 来源:网络整理
导读:我确信这是一个非常奇怪的要求,但是这里有. 我们有一些客户配置代码,由我们编译成类库的C#类表示.创建这些配置类目前是我想要分配给开发人员以外的人的猴子工作.因此,我们正在构建一个“Configurator”网站,业务分析师可以通过填写包含所选相关选项的表单来
我确信这是一个非常奇怪的要求,但是这里有.

我们有一些客户配置代码,由我们编译成类库的C#类表示.创建这些配置类目前是我想要分配给开发人员以外的人的猴子工作.因此,我们正在构建一个“Configurator”网站,业务分析师可以通过填写包含所选相关选项的表单来生成有效的C#类.

从MVC网站中的模板生成C#类的最佳方法是什么?请注意,我不是在谈论动态生成和在运行时执行类:我们实际上生成的文本文件恰好包含将包含在完全不同的项目中的C#代码.

这被证明是谷歌正确的一个非常困难的话题!到目前为止出现的选项……

>只需使用标记化的文本文件并使用String.Format替换值
>以某种方式使用Razor作为模板引擎(但不确定如何,并且它不是我们正在生成的HTML)
>以某种方式使用T4模板(至少我知道它用于生成C#,但不确定如何在运行时执行)

关于如何最好地接近这个的任何想法?

根据要求,这是输出类/文件的示例.此处的值覆盖基类中设置的值,具有客户特定的标签,验证等.这就是我们为客户定制产品的方式.

public class AreaRiskTemplate: AreaRiskTemplateBase
{
    public override string EntityName { get { return "risk"; } }
    public override string EntityNamePlural { get { return "risks"; } }
    public override string EntityNameArticle { get { return "a"; } }
    public override string CGovItemRefPrefix { get { return "R"; } }
    public override void SetFieldDefinitions()
    {

        FieldDefinitions.Level1.IsImplemented = true;
        FieldDefinitions.Level1.Label = "Category";
        FieldDefinitions.Level1.IsVisibleInGrid = true;

        FieldDefinitions.Level2.IsImplemented = true;
        FieldDefinitions.Level2.Label = "Team";
        FieldDefinitions.Level2.IsVisibleInGrid = true;

        FieldDefinitions.Description.IsImplemented = true;
        FieldDefinitions.Description.Label = "Description";
        FieldDefinitions.Description.IsVisibleInGrid = true;

    }
    public override ModelStateDictionary Validate()
    {
        var msd = new ModelStateDictionary();
        // add template-specific validation here
        msd.Merge(base.Validate());
        return msd;
    }
    public override List<string> Level1Options
    {
        get
        {
            return new List<string>
                {
                    "Organisational","Financial","Operational","External","IT"
                };
        }
    }
}

更新:目前正在调查http://msdn.microsoft.com/en-us/library/ee844259(v=vs.100).aspx的T4模板(感谢下面的评论).看起来很有希

解决方法

我建议避开网站,而只是简单地使用CodeSmith.您可以设计CodeSmith脚本,以便它会询问信息,然后生成所需的代码.虽然你必须购买CodeSmith,但似乎工作量少得多.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读