znu*_*nuq 1 c# asp.net-web-api2
我正在寻找一个非常简单的Web服务,它可以随机生成两个数据点的数据,并通过Web服务访问这些数据.我决定尝试使用ASP.NET Web API.
这是我的DataGenerator类:
public class DataGenerator
{
private Random rand;
private Double range;
private Double sample;
private Double scaled;
public DataGenerator(string name, string units, double min, double max, int updateRate)
{
try
{
Name = name;
Units = units;
Min = min;
Max = max;
UpdateRate = updateRate;
Timer timer = new Timer();
timer.Interval = updateRate;
timer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
timer.Start();
rand = new Random();
range = max - min;
Debug.WriteLine("Instantiated");
}
catch (Exception ex)
{
Debug.WriteLine("Error in Data Generator: " + ex.Message);
}
}
private void OnTimedEvent(object sender, ElapsedEventArgs e)
{
try
{
range = Max - Min;
sample = rand.NextDouble();
scaled = (sample * range) + Min;
Value = scaled;
Debug.WriteLine("Value = " + Value);
}
catch (Exception ex)
{
Debug.WriteLine("Error in Data Generator: " + ex.Message);
}
}
public string Name { get; }
public string Units { get; }
public double Min { get; set; }
public double Max { get; set; }
public int UpdateRate { get; set; }
public double Value { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
这是我的ApiController类,它实例化了两个DataGenerator对象:
public class DataGeneratorsController : ApiController
{
DataGenerator[] generators;
public DataGeneratorsController()
{
generators = new DataGenerator[]
{
new DataGenerator("Temperature", "deg F", 0.0, 200.0, 1000),
new DataGenerator("Pressure", "psi", 0.0, 100.0, 1000)
};
}
public IEnumerable<DataGenerator> GetAllDataGenerators()
{
Debug.WriteLine("Temp = " + generators[0].Value.ToString() + " Pressure = " + generators[1].Value.ToString());
return generators;
}
}
Run Code Online (Sandbox Code Playgroud)
在调试模式下,我能够看到DataGenerator类中的数据生成得很好,但它总是在ApiController类中显示为0,我发现这是因为每次发出请求时它都会被重新实例化来自浏览器.
我该如何解决这个问题?我不明白为什么每次都会调用构造函数.我在网上发现了很多关于依赖注入的内容,但我不知道这是如何解释我的问题的.
我可能会遗漏一些非常明显的东西,因为我是C#和Web API的新手.
默认服务行为是无状态的,这意味着 - 是的,它每次都会被实例化.
在网上阅读有关asp.net中应用程序状态的信息.
阅读有关Session对象,Cache对象,Application对象以及有关数据库中数据持久性的一些信息.
祝好运.
| 归档时间: |
|
| 查看次数: |
8589 次 |
| 最近记录: |