我是依赖注入的初学者。我在控制台应用程序中使用Microsoft Unity来开始并刷新基础知识。所有我想要基于类I注册的接口引用调用Addition Class或者Substraction Class的方法。但是我将参考接口引用设为null。请在下面的情况下建议我做错了什么?如何使用统一(基础)注入依赖关系?
我用一个接口部分 -
namespace ConsoleApplication3
{
interface IArithmetic
{
int DoOperation(int a, int b);
}
}
和2 claess -
namespace ConsoleApplication3
{
class Addition : IArithmetic
{
public int DoOperation(int a, int b)
{
return a + b;
}
}
}
namespace ConsoleApplication3
{
class Substraction : IArithmetic
{
public int DoOperation(int a, int b)
{
return a - b;
}
}
}
namespace ConsoleApplication3
{
class Program
{
private static IArithmetic InterfaceReference;
public Program(IArithmetic InterfaceReferenceParam)
{
InterfaceReference = InterfaceReferenceParam;
}
static void Main(string[] args)
{
IUnityContainer myContainer = new UnityContainer();
myContainer.RegisterType<IArithmetic, Addition>();
int output = InterfaceReference.DoOperation(5, 2);
Console.Write(output);
Console.WriteLine();
}
}
}
thanx它为我工作。然而,这是多少必要的 - myContainer.RegisterType();因为代码没有这个工作也。 –
user2318170
然后离开它!自从我使用Unity之后,我不确定是否必须在使用Resolve之前明确注册Program with Unity。入口点通常会实现一个接口,您将注册接口的实现,然后在接口上调用解析 –