C# 如何在内核找到属性时注入属性
我有一个模块,当我的应用程序以以下代码启动时,我会通过内核加载它:C# 如何在内核找到属性时注入属性,c#,.net,ninject,C#,.net,Ninject,我有一个模块,当我的应用程序以以下代码启动时,我会通过内核加载它: IKernel kernel = new StandardKernel(); kernel.Load("*.dll"); 但在某些情况下,我不想将模块组件放在bin文件夹中,也不想使用该模块及其相应的功能。然后,我的consumer类中有使用[Inject]属性的属性。当Ninject找不到其模块时,我想为这些属性返回null。默认情况下,如果Ninject找不到依赖项,此代码将引发异常 using (IKernel kern
IKernel kernel = new StandardKernel();
kernel.Load("*.dll");
但在某些情况下,我不想将模块组件放在bin文件夹中,也不想使用该模块及其相应的功能。然后,我的consumer类中有使用
[Inject]
属性的属性。当Ninject找不到其模块时,我想为这些属性返回null。默认情况下,如果Ninject找不到依赖项,此代码将引发异常
using (IKernel kernel = new StandardKernel())
{
kernel.Load("*.dll");
var someClass = kernel.Get<SomeClassWithDependency>();
someClass.TryDoSomething();
}
public class SomeClassWithDependency
{
public void TryDoSomething()
{
if (SomeType != null)
{
SomeType.DoSomething();
}
}
[Inject, Optional]
public ISomeType SomeType { get; set; }
}