我现在需要这么一个功能:我要新建一个类似于模版的东西(类似于类),这个模版会在运行时产生自己的实例(类似于对象)。这个类已经定义了自己的方法(C#),现在我想让这个模版有一个类似于code_behind的东西,这样子在code_behind里面可以重写这些预定义的方法。
现实中的例子就是asp.net的webForm了。我也是受此启发。实现这种东西有什么思路吗?因为这玩意涉及到编译。WebForm的code_behind asp.net会给编译的,我现在如何让自己的实现加入这个已经编译的大家庭呢?
本人升级为博问明星,悬赏加倍,10分。
写个vs插件,自己写代码解析。。。流程大概是这么一回事吧。
这个是在VS之外的,我的设想是直接在web界面上设置。属于系统扩展的高级功能。
你要的是不是partial 关键字
不是的;
和WebPage一样,我所有的模版都有一个类似于System.Web.UI.Page这个的公用方法。 我现在要实现
public class 模版A:公用的 { //can override stuff here }
@小AI: 俺懂了, 你的类叫Template, 然后你要在使用的时候用不同类型的Template。 你丫直接继承Template, 在Template上定接口不就行了吗!弄什么code behind啊。。。。
@小AI: 或者你要的是vs的template功能? 用户添加新item的时候可以选你的模板?
@undefined:
这个在设计开发阶段可以这么做。现在的主要问题是我要在系统开发完毕以后,我需要提供别人可以在外围扩展的方法(高级功能for高级用户)。
并且我说的这个模版,用户可以随时创建多个的。我说的CodeBehind是一种形象的表示,比如用户点击模版,在点击什么“扩展”按钮,就可以“扩展”了。
当然可以在VS里面通过继承,再配置一下也是可以实现的,这样子不直接,比较繁琐。
@小AI: 这个动态编译出一个插件出来 ,载入的时候直接载入插件,然后注册插件就可完成了。
@imfunny: 讨论了会,我的思路都出来了。你贴的代码我已经用上了,做了个demo,没有问题!谢谢侬
我来看看 undefined说啥了
这次正经吧。
相当正经。 不过我觉得你是来蹭豆的