在网站上使用相同的App_Code类

时间:2020-03-06 14:19:11  来源:igfitidea点击:

假设我们有一个包含两个网站项目的解决方案,即网站A和网站B。现在,在网站A的App_Code文件夹中,在ClassX.cs文件中定义了一个X类。如果网站B也需要访问ClassX.cs,该怎么办?

有什么方法可以在App_Code文件夹之间共享此文件?假设将文件移动到公共库是不可能的。

解决方案

请不要使用这些邪恶的网站项目。改用Web应用程序项目,将共享的类打包到库项目中,然后从所有Web应用程序中引用它。

将共享类打包到一个库(DLL)中,然后在每个站点上右键单击"添加引用",然后选择已创建的库。

我不认为没有办法将ClassX移到新的代码库项目中。 .NET要求所有程序集的依赖项都必须与程序集本身或者GAC一起存在于同一文件夹中,才能自动检测到。

我们可以尝试通过Reflection类手动加载程序集,尽管有点麻烦。

如果有时间和意愿去做,最好的解决方案就是采用JRoppert将其移至Web应用程序项目的解决方案。然后,我们可以使用Web引用(与VS中的常规引用一样好用)来引用ClassX。

高温超导

在"假设将文件移到公共库中是不可能的"的限制下。唯一的方法是使用NTFS交接点本质上创建一个符号链接,以在两个文件夹中具有相同的.cs文件。

尽管这是一个糟糕的选择(出于版本控制的原因)...将其移动到公共库是最好的选择。

这是NTFS交汇点上的Wikipedia条目
http://en.wikipedia.org/wiki/NTFS_junction_point

这是创建它们的工具
http://technet.microsoft.com/zh-cn/sysinternals/bb896768.aspx