Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# VisualStudio:在ASP和C项目之间共享代码_C#_Asp.net_Visual Studio 2012 - Fatal编程技术网

C# VisualStudio:在ASP和C项目之间共享代码

C# VisualStudio:在ASP和C项目之间共享代码,c#,asp.net,visual-studio-2012,C#,Asp.net,Visual Studio 2012,我正在开发一个包含两个部分的应用程序: C表格申请表 ASP.NET web表单应用程序。 在这两个分段项目的开发过程中,许多功能是相同的,在两个不同的项目中开发它们是不合理的,因为这样浪费了开发时间。 所以我想知道是否有任何方法可以共享两个项目中使用的代码/类?类似于使用相同的解决方案或任何其他方法创建项目,这些方法在Web或.exe格式的应用程序发布过程中不会出现问题。是-只需将公共代码放入类库dll中即可。这正是类库的用途——用于在项目之间共享代码 只需确保将类库定位到一个与forms项目

我正在开发一个包含两个部分的应用程序:

C表格申请表 ASP.NET web表单应用程序。 在这两个分段项目的开发过程中,许多功能是相同的,在两个不同的项目中开发它们是不合理的,因为这样浪费了开发时间。
所以我想知道是否有任何方法可以共享两个项目中使用的代码/类?类似于使用相同的解决方案或任何其他方法创建项目,这些方法在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应用程序中引用它就可以确保发生这种情况。