ASP.NET Web API中不同控制器之间的公共对象/功能

时间:2017-09-27 03:18:50

标签: c# asp.net asp.net-web-api controller

我是C#Web API的新手,我对.cs文件和文件夹结构感到困惑,我不确定在哪里放置公共对象&功能

例如,现在我创建了一个简单的类Obj,一个函数和两个控制器:

// Obj.cs under Models folder
public class Obj
{
     public int X;
     public int Y;
     public Obj()
     { x = 0; y = 0;}
}

public int GetRandom()
{
    Random r = new Random();
    return r.Next();
}

public class XController : ApiController
{
     public void Add()
     {
         obj1.X += GetRandom();  
     }
}

public class YController : ApiController
{
     public void Add()
     {
         obj1.Y += GetRandom();  
     }
}

问题是我应该在哪里创建obj1和函数,以便两个控制器也能够访问它们。 目前,我只是在整个项目下创建一个额外的.cs文件,并将它们设置为静态。

// TestingExample.cs under project
public static class TestingExample
{
    public Obj obj1;
    public void Init()
    {
        obj1 = new Obj();
    }
    public int GetRandom()
    {
        Random r = new Random();
        return r.Next();
    }
}

// XController.cs under Controllers folder
public class XController : ApiController
{
     public void Add()
     {
         TestingExample.obj1.X += TestingExample.GetRandom();  
     }
}

// YController.cs under Controllers folder
public class YController : ApiController
{
     public void Add()
     {
         TestingExample.obj1.Y += TestingExample.GetRandom();  
     }
}

结构将如下:

Project
---Models
-----Obj.cs
---Controllers
------XController.cs
------YController.cs
---TestingExample.cs

但我认为这样做似乎非常愚蠢,并使项目结构变得非常糟糕。 有谁能建议我对这个案子有什么好的做法?谢谢!

0 个答案:

没有答案