在非编译的.aspx中,是否可以为一个aspx提供2个部分类文件?我正在尝试做类似的事情:
<%@ Page Language="C#" inherits="_Default" src="Default.aspx.cs" src="Default2.aspx.cs" %>
Default和Default2都定义了部分类
更新:是的..它没有编译或点不会有意义,因为我只是在/ bin目录中查找相应的dll.我需要这个没有编译,因为源需要定期更改.我可能想出一种方法来更新aspx,但我不想这样做.
我使用两个源文件的原因是有很多源代码连接到我的数据库和诸如此类的东西.我有一个人会用db的东西捣乱,而另一个人则用另一个逻辑来捣乱.我更喜欢将这些文件分开,这样他们就不必混淆不需要查看的代码
是的,不是.是的,你可以拥有任意数量的部分课程.不,你不能(也不必!)在你的Page指令中指定它们.
<%@ Page Language="C#" inherits="Default" %>
在Default.aspx.cs中:
public partial class Default { /*yadda*/ }
在Default2.aspx.cs中:
public partial class Default { /* even more yadda */ }
部分类是编译器的错觉.就CLR而言,它们并不存在.C#编译器在编译期间将所有部分类拼接在一起; 从asp.net编译器的角度来看,只有一个Default类.
听起来像你的更新,你需要的不是多个部分类,而是重构你的代码.你应该放弃部分类的想法,并采用依赖注入/控制反转.分离出你的数据库逻辑和其他关注领域,使用接口定义它们,然后在运行时使用DI容器框架注入这些"提供者"的所需实现.
这将您的代码分离出来,为您的应用程序提供更大的灵活性,可测试性和易于更新; 比将代码分成两个或更多文件要好得多.DI也很容易理解和实现.我正在使用Unity for DI而且喜欢它.花了大约一天才能加快速度.