gpt4 book ai didi

c# - 将代码文件转换为代码隐藏

转载 作者:太空狗 更新时间:2023-10-29 22:14:26 26 4
gpt4 key购买 nike

所以我似乎在将我的 CodeFile 引用放入 CodeBehind 时遇到了一些困难。在你问之前,我没有 Visual Studio,也不在 Windows 上。代码托管在我有权访问的 IIS 服务器上。

<% @Page Language="C#" Inherits="corn.cheese.pies.CasLogin" CodeFile="anon.cs" %>

此代码完美运行,但是将其更改为:

<% @Page Language="C#" Inherits="corn.cheese.pies.CasLogin" CodeBehind="anon.cs" %>

页面返回错误:

Parser Error Message: Could not load type 'corn.cheese.pies.CasLogin'.

最佳答案

你确定你了解CodeFile和CodeBehind的区别吗?参见,例如,CodeFile vs CodeBehind (尽管忽略接受答案,两个链接都是 dea)或 this article关于区别。

简而言之:

假定 CodeBehind 文件被编译成一个程序集,该程序集部署在您网站的 bin 文件夹中。当 ASP.NET 引擎加载您的 aspx 文件时,它会使用 Inherits 指令来尝试查找该类。 CodeBehind 文件主要用于帮助编译(和工具,例如“查看源代码”),但工作是在编译时完成的。

CodeFile 文件由 ASP.NET 在运行时按需定位和编译。您可以“预编译”您的网站以退回到旧模型,如果您不想将源代码部署到每个网站,这将非常有用。但是默认情况下,你的CodeFile文件是部署到站点的.cs文件,类是在ASP.NET临时存储文件夹中生成的。 (从技术角度来看:CodeFile 页面是 partial class 定义,只有类的自定义代码隐藏部分实际部署在 C# 文件中;这就是为什么 CodeFile 最初并不存在,因为 C# 编译器最初无法执行部分类。)

通过将 CodeFile 更改为 CodeBehind,您告诉 ASP.NET 忽略 C# 文件的存在,并且只在已编译的程序集中查找它。反过来,ASP.NET 会告诉您编译后的程序集实际上并不包含您告诉它要查找的类。

关于c# - 将代码文件转换为代码隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10417365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com