gpt4 book ai didi

c# - 如何在网站项目的页面上使用其他C#源文件?

转载 作者:太空狗 更新时间:2023-10-30 00:40:52 27 4
gpt4 key购买 nike

编辑:{
我想我在这里添加了很多(太多)信息(阅读)。我想要的是:
我正在使用一个网站(没有.csproj文件)
我需要多个源代码文件才能运行我的aspx
据我所知,当请求aspx文件时,我要么需要使用预编译的dll,要么告诉.net动态编译其他文件
我不知道怎样才能让这两种情况都奏效
如果提供有关dll的帮助,请告诉我要使用什么语句并放入什么文件(aspx指令、web.config等--不能使用.csproj)
如果在另一个选项上提供帮助,请提供用于包含多个源文件的语句,以及将该语句放在何处(aspx指令、web.config等,--不能使用.csproj)--我已经在使用@page codebhind/codefile,我需要多个源文件
}
我正试图在我的aspx文件中包含额外的c源文件,它不起作用。
我有default.aspx(带有@page codefile=“default.aspx.cs”),希望引用其他文件(例如linklist.cs、sqlitedb.cs、sqlserverdb.cs、json.cs)。
我想应该是这样的(在default.aspx文件中):
//<%@reference page=“secondfile.cs”%>
我对asp/.net还不熟悉,但对c有一些经验,对php、js、客户机-服务器模型等也很有经验。我尝试过各种方法来包含它们,但都没有成功;尝试如下。
我的安装程序使用网站(按需编译;App vs. Site),使用文本编辑器(而不是vs!)编辑远程文件。我从vs开始,但经过数小时的调试后确定,我的服务器需要不同于vs项目的各种设置,我不想维护同一代码的多个版本…因此,由于我在最后期限内,即使我可以让vs使用我的设置(comments welcome),我的主要关注点是让代码与服务器一起工作。
有效的方法:
来自所有c文件的所有代码合并为一个代码文件my code file,确实可以编译;问题是为了便于维护,可以将每个类放在一个单独的文件中。
根据上面的链接,我需要使用@page codefile(而不是codebhind);我已经确定这会导致主c文件加载
不起作用的事情:
HTML脚本标记(link);此方法确实会导致其他文件尝试编译,但在文件中的“using”上会出现错误,但即使将“using”移到主源文件中,其他文件中的类也不会被识别为主C文件中的数据类型。
<%@reference page=“secondfile.cs”%>(错误:“文件'src'在此处无效,因为它不公开类型。”“不确定从何处获取'src',我没有使用它,'src'不是要引用的有效属性…”
“app vs.site”链接指定目录中的所有文件都包含在编译中,但其他文件未被编译…我的所有文件都在/www/dev/*中,我的所有c文件都使用相同的名称空间
<%@assembly name=“assemblyname”%>或<%@assembly src=“pathname”%>
实际使用以下命令似乎确实会导致文件加载,但我仍然得到一个错误:“cs0246:找不到类型或命名空间名称‘sqlserverdb’(是否缺少using指令或程序集引用?)

    <%@ Assembly Src="SQLServerDB.cs" %>
<%@ Assembly Src="DataSource.cs" %>

包括“using myns.sqlserverdb”会产生相同的错误
我不知道还能尝试什么…请帮忙。我也尝试过与其他asp指令的各种组合。
更新/澄清:我要问的是,由于我使用的是网站设置(而不是web应用程序),我如何告诉asp服务器用代码文件编译其他源代码?到目前为止,答案并没有解决这两个方面的问题。using命令不会告诉编译器代码文件在哪里,只告诉所需的类。

最佳答案

这里有两个解决方案,目前对我有效。不幸的是,我以前试过,但没用。我没有访问Web服务器设置的权限,所以我不知道它们以前为什么不工作。
正如@alexei levenkov建议的那样,使用app_代码目录。这以前对我不起作用,而且由于我是asp.net新手,而且我使用过的所有其他语言都需要以某种方式显式地指定所需的源文件,所以这个解决方案是外来的,我完全不感到惊讶,因为一开始这没有意义。而且,(几乎)我找到的所有文档都提到了Web应用程序上下文中的app_代码目录,因此我忽略了它,因为它似乎只是一个标准名称,我可以使用任何我想要的名称,而不是.net对应的一个神奇名称。
另一种解决方案是直接在.aspx文件中的@page指令下使用以下命令。注意:在“app_code”中使用路径只适用于任何导致.net不将“app_code”注册为魔法目录的情况;我不知道这些情况是什么,我只知道它们是可能的,我遇到了它们。
<%@assembly src=“应用程序代码/实用程序/sqlserverdb.cs”%>
<%@assembly src=“应用程序代码/实用程序/函数.cs”%>
<%@assembly src=“应用程序代码/实用程序/数据库.cs”%>
<%@assembly src=“应用程序代码/实用程序/linkedlist.cs”%>
<%@assembly src=“应用程序代码/dataobjects.cs”%>
另请注意:我发现这些解决方案与名称空间无关。我的意思是,这些解决方案导致其他源文件在编译时链接在一起,与代码结构完全无关。任何文件都可以位于任何可访问的目录中,并且都可以位于相同或不同的命名空间中。其他人认为名称空间不起作用的评论,因为这不是我遇到的问题。不过,每个源文件都需要一个“using”语句来引用其他名称空间;但这与源代码的位置无关。
感谢所有提出建议的人!

关于c# - 如何在网站项目的页面上使用其他C#源文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24131130/

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