C# VisualStudio:在ASP和C项目之间共享代码
我正在开发一个包含两个部分的应用程序: C表格申请表 ASP.NET web表单应用程序。 在这两个分段项目的开发过程中,许多功能是相同的,在两个不同的项目中开发它们是不合理的,因为这样浪费了开发时间。C# VisualStudio:在ASP和C项目之间共享代码,c#,asp.net,visual-studio-2012,C#,Asp.net,Visual Studio 2012,我正在开发一个包含两个部分的应用程序: C表格申请表 ASP.NET web表单应用程序。 在这两个分段项目的开发过程中,许多功能是相同的,在两个不同的项目中开发它们是不合理的,因为这样浪费了开发时间。 所以我想知道是否有任何方法可以共享两个项目中使用的代码/类?类似于使用相同的解决方案或任何其他方法创建项目,这些方法在Web或.exe格式的应用程序发布过程中不会出现问题。是-只需将公共代码放入类库dll中即可。这正是类库的用途——用于在项目之间共享代码 只需确保将类库定位到一个与forms项目
所以我想知道是否有任何方法可以共享两个项目中使用的代码/类?类似于使用相同的解决方案或任何其他方法创建项目,这些方法在Web或.exe格式的应用程序发布过程中不会出现问题。是-只需将公共代码放入类库dll中即可。这正是类库的用途——用于在项目之间共享代码 只需确保将类库定位到一个与forms项目和ASP.Net项目兼容的.Net framework即可。解决方案1:如果要将API功能公开给多个应用程序,可以创建Web服务并通过wsdl文件公开它们。这样,您就可以从任何应用程序使用这些服务 试试这个 解决方案2: 您可以创建一个类库项目,该项目生成.dll文件,该文件可从任何其他应用程序用于访问API函数 按照以下步骤创建包含通用函数API的库项目: 步骤1:创建名为MyLibraryProjects的新类库项目您可以指定任何名称,如下所示: 步骤2:创建常用的库函数,如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyLibraryProject
{
public class MathLibraryClass
{
public int num1 { get; set; }
public int num2 { get; set; }
public int Sum(int n1,int n2)
{
num1 = n1;
num2 = n2;
return num1 + num2;
}
}
}
步骤3:现在构建项目以获取项目文件夹中的MyLibraryProject.dll文件
步骤4:现在转到包含dll文件的项目文件夹。路径可以是deubug文件夹,也可以是基于生成输出路径的Release文件夹
注意:我假设您的构建POutput路径是Release文件夹
步骤5:现在转到发布文件夹路径:
ProjectFolder->MyLibraryProject->MyLibraryProject->bin->Release
步骤6:现在文件夹包含dll文件,如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyLibraryProject
{
public class MathLibraryClass
{
public int num1 { get; set; }
public int num2 { get; set; }
public int Sum(int n1,int n2)
{
num1 = n1;
num2 = n2;
return num1 + num2;
}
}
}
步骤7:现在dll文件已成功生成,所以您可以将此dll文件作为引用添加到任何项目中,以使用这些常用api函数
步骤8现在在这里创建一个项目,作为示例,我正在创建一个控制台应用程序,它使用dll中生成的公共函数
步骤9:现在通过以下步骤添加dll文件作为参考:
右键单击新创建的项目。
选择引用
选择添加引用
从参考管理器窗口中选择浏览选项,如下所示:
现在选择所需的dll,如下所示:
步骤10:现在使用语句在项目中添加库项目名称空间
using MyLibraryProject;
步骤11:现在在控制台应用程序中编写以下代码以利用库函数
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MyLibraryProject;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
MathLibraryClass myclass = new MathLibraryClass();
int sum = myclass.Sum(12, 4);
Console.WriteLine("sum is {0}", sum);
}
}
}
步骤12:现在您可以看到以下输出:
并将该库dll放在asp.net的Bin目录中application@Aristos仅从ASP.NET应用程序中引用它就可以确保发生这种情况。