TL; DR
是否可以使用代码块中定义的类替换Inherits="..."
的{{1}},而不是编译后的代码中的类?
我有一个ASP.NET网络应用程序,我很快需要修补,但我只能更新UserControl
和.aspx
文件...我不可能重新编译和发布.ascx
文件(由于客户端给我们带来了变更管理流程)。
在应用程序中,我有.dll
从代码隐藏类为文件设置为UserControl
...但是该类中存在错误。
我想要做的是使用相应的错误修复在Inherit
文件的<script runat="server"></script>
块内重新创建整个类。
我已尝试过以下内容,但我得到了......
无法加载类型&#39; MyCtrlStatic&#39;。
.ascx
有问题的控件使用了代码隐藏类中的许多不同属性和方法,以上是对问题的大规模简化。
这有可能实现吗?否则,我正在考虑重建并完成整个变更管理程序。
答案 0 :(得分:0)
答案是盯着我的脸,直到几分钟前我才能看到它......
而不是尝试声明新的Class
并从中继承,答案是直接从UserControl
继承,然后将代码直接放在代码块中。
<%@ Control Language="vb" AutoEventWireup="false" Inherits="UserControl" %>
<script runat="server">
Public Function DisplayValue() As String
Return "Hello World"
End Function
</script>
<div><%=DisplayValue()%></div>
除此之外,我还必须添加一些Import
命令,例如......
<%@ Import Namespace="System.Collections.Generic" %>
但是现在我有一个修补的.ascx
文件,它不需要重建DLL才能工作