簡體   English   中英

沒有代碼的ASP.NET頁面使用其他庫/ DLL

[英]ASP.NET page without code behind use other library / DLL

我正在向現有頁面添加一個簡單的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 ,但沒有運氣。

首先,您的項目必須引用代碼所在的另一個dll中的程序集。這是通過“<%@ Assembly”標記完成的,

例如

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

但請注意,名稱中有一個完整類型名稱。 例如,Dll必須位於您要使用它的應用程序的BIN目錄中。可選擇您可以在全局程序集緩存中安裝dll,但是您必須為dll指定一個帶有SNK文件的強名稱(已完成類庫項目設置)

如果在一個visual studio解決方案中有多個項目,則可以使用項目引用,然后引用MyProject.BusinessLogic dll。 構建Web應用程序時,它會自動將dll復制到bin目錄中。

現在也許您已經在項目中引用了dll,但是仍然需要在標記中使用<%Assembly標記。 ASPX引擎不知道你的DLL。

(可選)您可以使用web.config條目為ASPX引擎注冊dll。

在ASP.NET(VS 2005)和web.config中注冊程序集

使用<%@ Import%>執行此操作...

<%@ 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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM