如何解决从静态方法调用实例方法? 如何使依赖项注入在控制台应用程序中工作
我具有以下 ISampleInterface 接口
public interface ISampleInterface
{
bool sampleMethod(string _txt);
}
这样我实现的界面,
public Class SampleInterface : BaseEntity<Sample>,ISampleInterface
{
IContext _context;
public SampleInterface (IContext context)
: base(context)
{
_context = context;
}
public bool sampleMethod(string _txt)
{
return true;
}
}
因此从我的主要静态方法中如何调用此 sampleMethod 而不调用 SampleInterface 类
我的Service类紧紧围绕一个实体,即“样本”,所以我只想知道,无需调用Service类,就可以通过ISampleInterface调用此方法( sampleMethod )
public static void main(String[] args)
{
}
我面临的确切问题,我有Batchjob和Web项目,Web项目我可以通过IOC上瘾来调用此方法,我也想在Batchjob中调用相同的方法,我不能这样做,因为batchjob的主要方法是静态方法
解决方法
sampleMethod
是一个实例方法,因此您需要一个实例。没有一个人就无法调用它!
public static void main(String[] args)
{
var instance = new SampleInterface();
instance.sampleMethod("some text");
}
,
在没有任何实例的情况下调用实例方法在C#中没有任何意义。
这就像要求进行不带数字的数值计算。
可能与您的上下文有关:接口必须在实例级别实现,没有诸如静态接口之类的东西。虽然并非完全不可能实现,但从设计上讲,这在C#中是不可用的。
因此,对于实例,为了确保答案的完整性:
要创建实例,请使用构造函数(由于您未定义任何构造函数,因此会隐式创建默认的公共无参数构造函数)
然后,您可以在实例上调用该方法。
var instance = new SampleInterface();
instance.someMethod("foo");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。