ASP.. NET页面后面没有代码,使用其他库/ DLL

本文关键字:其他 DLL 代码 NET ASP | 更新日期: 2023-09-27 18:15:33

我正在添加一个简单的ASP。. NET页面到现有页面(我现在不能更改/构建原始项目),该文件没有代码。所有的工作都很好,除了当我想使用一些功能,生活在我的项目中的另一个库。

例子
<%@ Page Language="C#"  %>
<%@ Import Namespace="MyProject.BusinessLogic" %>
<HTML>
   <script runat="server" language="C#">
   public void Page_Load(object sender, EventArgs e)
   {
      bool myBool = false;
      MyLabel.Text = myBool.ToString();  //works fine
      MyLabel.Text = MyProject.BusinessLogic.StatusManager.Get().ToString(); //does not work
   }
   </script>
   <body>
      <form id="MyForm" runat="server">
         <asp:label id="MyLabel" runat="server"></asp:label>
      </form>
   </body>
</HTML>

得到的错误是…在命名空间"MyProject"中不存在。BusinessLogic'(您是否缺少程序集引用?)

任何想法如何得到这个参考问题的修复?

我尝试了这些选项:http://msdn.microsoft.com/en-us/library/d864zc1k(v=vs.85).aspx,但没有运气。

ASP.. NET页面后面没有代码,使用其他库/ DLL

使用& lt; % @进口%>这样做…

<%@ Application Language="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Web.UI" %>
<script RunAt="server">

//here you can write your C# Code
 public void Page_Load(object sender, EventArgs e)
   {
      bool myBool = false;
      MyLabel.Text = myBool.ToString();  //works fine
      MyLabel.Text = MyProject.BusinessLogic.StatusManager.Get().ToString(); //does not work
   }

</script>

首先,您的项目必须在代码所在的其他dll中引用程序集。这是通过"<%@ Assembly"标签完成的,

例如

<%@ Assembly Name="SomeDll.NameHere.Dll" %>

但是,请注意这里的名称是一个完整类型名称。例如,Dll必须在应用程序的BIN目录中使用它。你可以选择在全局程序集缓存中安装dll,但是你必须给dll一个带有SNK文件的强名称(在类库项目设置中完成)

如果你在一个visual studio解决方案中有多个项目,你可以使用项目引用,然后引用MyProject。BusinessLogic dll。当你构建你的web应用程序时,它会自动将dll复制到bin目录。

现在,也许您已经在项目中引用了dll,但是您仍然需要在标记中使用<% Assembly标记。ASPX引擎不知道你的dll。

你可以选择注册你的dll为ASPX引擎与web。配置条目。

ASP中的注册程序集。. NET (VS 2005)和web.config