如何从asp.net web-api中的另一个方法调用Windows中的方法

本文关键字:方法 另一个 调用 Windows web-api asp net | 更新日期: 2023-09-27 18:02:50

我有一个c#解决方案,它有2个项目:一个windows窗体项目(桌面)和一个asp.net web-api项目(REST服务)。我试图从ValuesController.cs中的Post()方法调用Form1.cs中的方法enableMachine(),但是尽管我引用了命名空间,它显示了错误。如果我将enableMachine()定义为静态,它可以工作,但我不能这样做,因为我还需要在此方法中实例化另一个对象。有什么办法解决这个问题吗?提前感谢!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using RestLayer.Models;
using ValidatorConnector;
namespace RestLayer.Controllers
{
    public class ValuesController : ApiController
    {
        // POST api/values
        public void Post()
            {
               ...     
            }
       }
}

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using log4net;
namespace ValidatorConnector
{
    public partial class Form1 : Form
    {
     public Form1()
        {
         ...
        }
    public void enableValidator()
    {
        ...
    }
}

如何从asp.net web-api中的另一个方法调用Windows中的方法

最好的做法是将公共功能分离到一个不依赖于Forms或Asp.Net的单独项目中。然后将此汇编交给ASP。. Net和WinForms项目作为一个依赖项,然后你就可以从两个项目调用你的方法。