.net mvc-调用调用方类的方法的类方法

时间:2019-11-15 21:21:00

标签: c# asp.net-mvc class

.NET MVC应用程序。在控制器操作中,我创建ClientsService类的实例,然后调用其方法A()。该方法创建另一个类的实例,然后调用其方法之一,但是该方法需要调用clientsService的方法...如何正确完成?

Namespace MyApp.Services

public class ClientsService 
{
    ApplicationDbContext db;

    public ClientsService(ApplicationDbContext db) 
    {
        this.db = db;
    }

    public void A() 
    {
        int x = 5;
        var instance = new SomeOtherClass(db)
        instance.SomeMethod(x);
    }

    //returns object type name
    public string getObjectTypeName(object obj) 
    {
        return ObjectContext.GetObjectType(obj.GetType()).Name;
    }
}


public class SomeOtherClass() 
{
    ApplicationDbContext db;

    public SomeOtherClass(ApplicationDbContext db) 
    {
        this.db = db;
    }
    public void SomeMethod(int i)
    {
        /////////////////
        //I NEED TO CALL getObjectTypeName() HERE!!
        /////////////////
    }
}

方法getObjectTypeName()可能不应该驻留在该类上,而是应该驻留在某种全局类上(因为它可以在任何地方使用)?如果是这样,我该怎么办?还是我可以将ClientsService实例本身传递给SomeOtherClass中的方法? (类似于instance.SomeMethod(db,this))?

我在这里迷路了,感谢您的帮助

1 个答案:

答案 0 :(得分:3)

您只需要在ClientsService内传递对象SomeOtherClass的实例。

public SomeOtherClass(ClientsService service, ApplicationDbContext db) 
{
    this.service = service;
    this.db = db;
}

public void SomeMethod(int i)
{
    this.service.getObjectTypeName();
}

我建议阅读更多有关“依赖项注入”的知识,以使管理依赖项的整个过程更加健壮和易于理解。