我在做WEBAPI时,需要将参数从Controller类传到Service类中进行计算后再输出。例如下图代码中ProductService类就是计算类,Products定义的是数据结构。
我的问题是我不知道如何把数据从Controller类传到Service类?请求专家指点!
由于我对编程模式不熟悉,不知道怎么用专业语言描述,不知道有没有把问题描述清楚?
[Route("api/[controller]")]
[ApiController]
public class ProductController : ControllerBase
{
[HttpPost]
public IActionResult PostProduct(dynamic obj)
{
#region 读取传入的参数
dynamic objdyn = JsonConvert.DeserializeObject(Convert.ToString(obj));
//string name = objdyn.LoginName;
string _item = Convert.ToString(objdyn.partNumber); ////部件编号1
string _surfce = Convert.ToString(objdyn.partName); ////部件名称2
#endregion
var s = ProductService.Current.Products;
return Ok(s);
}
}
做成一个工具类,controller中调用工具类的方法,传递参数到方法里面,方法返回计算结果就行,比如下面的代码
namespace WebApplication1
{
public class ProductService
{
public static bool IsInt(string v)
{
if (string.IsNullOrEmpty(v) || !System.Text.RegularExpressions.Regex.IsMatch(v, @"^\d+$")) return false;
return true;
//bool r=WebApplication1.ProductService.IsInt("123");这样调用
}
}
}
我感觉Products是定义数据结构的类吧。Products是product的集合。
ProductService是计算类,还没写呢。下面第二段代码是ProductService的
Product类
namespace expressApi.Dtos
{
public class Product
{
public string ParentItem { get; set; }
public string Item { get; set; }
public string Process { get; set; }
public string WorkStep { get; set; }
public string Parameter { get; set; }
public string Value { get; set; }
public string url { get; set; }
}
}
ProductService类
```c#
namespace expressApi.Services
{
public class ProductService
{
public static ProductService Current { get; } = new ProductService();
public static string _item;
//public List<Product> Products = new List<Product>();
public List<Product> Products { get; }
private ProductService()
{
//string y1 = _item;
string sql = "select partref,DISAPLYNAME,VALUE,attribute6 from propertymodel";
OracleParameter[] parameters = new OracleParameter[]
{
//new OracleParameter("@id", 1)
};
........
}
```