我有一个简单的计数器应用程序,我想通过实现度量标准接口向其中添加一个度量标准,但是在使用该度量标准时,我会收到未实现的异常。
using System;
using Foo.Metrics; // This contains the interface "IFooMetrics" and class "MetricCounter"
namespace FooService
{
class Program
{
private static MetricCounter _myMetric;
public Program(IFooMetrics fooMetrics)
{
_myMetric = fooMetrics.CreateMetric();
}
static void Main(string[] args)
{
var counter = 0;
var max = args.Length != 0 ? Convert.ToInt32(args[0]) : -1;
while (max == -1 || counter < max)
{
counter++;
Console.WriteLine($"Counter: {counter}");
_myMetric.AddToCounter();
Console.WriteLine("Metric added");
System.Threading.Tasks.Task.Delay(1000).Wait();
}
}
}
}
不幸的是,我对依赖注入的知识很少,所以我不明白为什么它不起作用。
我只是希望正确地初始化该指标,但是我不确定自己在做什么或做错了。
答案 0 :(得分:0)
例如,使用简单注射器nuget包很容易。这是简单注射器simple injector doc
的文档这是一个简单的例子 example
首先,您必须创建实现接口IFooMetrics的MetricCounter类。 然后创建一个以该接口为例在类中注册的容器
private static readonly Container container;
static Program()
{
container = new Container();
container.Register<IFooMetrics, MetricCounter >();
container.Verify();
}
然后在主
var service = container.GetInstance<IFooMetrics>();
service.YourMethod();