Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
访问具有IOptions构造函数的类的方法<&燃气轮机;在c#NETCore中_C#_.net_Asp.net Core_.net Core - Fatal编程技术网

访问具有IOptions构造函数的类的方法<&燃气轮机;在c#NETCore中

访问具有IOptions构造函数的类的方法<&燃气轮机;在c#NETCore中,c#,.net,asp.net-core,.net-core,C#,.net,Asp.net Core,.net Core,我有一个类文件:BandUtil.cs public class BandUtil { private readonly IOptions<BandSettings> _bandOptions; public BandUtil (IOptions<BandSettings> bandOptions) { _bandOptions= bandOptions; }

我有一个类文件:BandUtil.cs

public class BandUtil
    {
        private readonly IOptions<BandSettings> _bandOptions;

        public BandUtil (IOptions<BandSettings> bandOptions)
        {
            _bandOptions= bandOptions;
        }

        public BandSettings BandValues()
        {
            return _bandOptions.Value;
        }

        public Client Client()
        {
             return new Client(BandValues().UserID, BandValues().ApiToken,BandValues().ApiSecret);
        }
    }
公共类BandUtil
{
私有只读IOptions\u bandOptions;
public BandUtil(选项)
{
_波段选项=波段选项;
}
公共波段设置波段值()
{
返回_bandOptions.Value;
}
公共客户机()
{
返回新客户端(BandValues().UserID,BandValues().apitonk,BandValues().ApiSecret);
}
}
我有另一门课,BandTest.cs

public class BandUtil
    {
        private readonly IOptions<BandSettings> _bandOptions;

        public BandUtil (IOptions<BandSettings> bandOptions)
        {
            _bandOptions= bandOptions;
        }

        public BandSettings BandValues()
        {
            return _bandOptions.Value;
        }

        public Client Client()
        {
             return new Client(BandValues().UserID, BandValues().ApiToken,BandValues().ApiSecret);
        }
    }
在这个类BandTest.cs中,我试图从BandUtil类访问Client()方法

我尝试了多种选择,但无法解决它。
有人能给我介绍一下吗?

我看到的第一个问题是构造函数(BandWithClient)与类名(BandUtil)不匹配

我不确定还有什么问题,但这里有一个快速而肮脏的娱乐节目,展示了如何使用Client()

使用系统;
公开课{
公共T值{get;set;}
}
公共类设置{
公共字符串用户标识{get;set;}
公共字符串ApiToken{get;set;}
公共字符串ApiSecret{get;set;}
}
公共类客户端{
公共客户端(字符串userId、字符串apiToken、字符串secret){
}
}
公共类BandUtil
{
私有只读IOptions\u bandOptions;
public BandUtil(选项)
{
_波段选项=波段选项;
}
公共波段设置波段值()
{
返回_bandOptions.Value;
}
公共客户机()
{
返回新客户端(BandValues().UserID,BandValues().apitonk,BandValues().ApiSecret);
}
}
公共课程
{
公共静态void Main()
{
var bandSettings=新的bandSettings{
UserID=“Foo”,
ApiToken=“Baz”,
ApiSecret=“Bar”
};
var options=new IOptions{Value=bandSettings};
var util=新的BandUtil(选项);
var client=util.client();
}
}

这里有一个dotnetfiddle与上面的代码:

我看到的第一个问题是构造函数(BandWithClient)与类名(BandUtil)不匹配

我不确定还有什么问题,但这里有一个快速而肮脏的娱乐节目,展示了如何使用Client()

使用系统;
公开课{
公共T值{get;set;}
}
公共类设置{
公共字符串用户标识{get;set;}
公共字符串ApiToken{get;set;}
公共字符串ApiSecret{get;set;}
}
公共类客户端{
公共客户端(字符串userId、字符串apiToken、字符串secret){
}
}
公共类BandUtil
{
私有只读IOptions\u bandOptions;
public BandUtil(选项)
{
_波段选项=波段选项;
}
公共波段设置波段值()
{
返回_bandOptions.Value;
}
公共客户机()
{
返回新客户端(BandValues().UserID,BandValues().apitonk,BandValues().ApiSecret);
}
}
公共课程
{
公共静态void Main()
{
var bandSettings=新的bandSettings{
UserID=“Foo”,
ApiToken=“Baz”,
ApiSecret=“Bar”
};
var options=new IOptions{Value=bandSettings};
var util=新的BandUtil(选项);
var client=util.client();
}
}
这里有一个dotnetfiddle与上面的代码:

您需要

  • 更改构造函数名称以匹配类名:

    public-BandUtil(IOptions-bandOptions)

  • 给它一个
    void
    返回类型,使其成为setter方法:

    public void带宽客户端(IOOptions带宽选项)

  • 如果选择选项1,请将其添加到
    BandTest.cs
    文件中:

    var bandSettings=新的bandSettings();
    var bandOptions=新选项包装器(带设置);
    var bandUtil=新的bandUtil(bandOptions);
    var client=bandUtil.client();
    
    如果选择选项2,请将其添加到
    BandTest.cs
    文件中:

    var-bandUtil=new-bandUtil();
    var bandSettings=新的bandSettings();
    var bandOptions=新选项包装器(带设置);
    bandUtil.BandWidthClient(带宽选项);
    var client=bandUtil.client();
    
    您需要

  • 更改构造函数名称以匹配类名:

    public-BandUtil(IOptions-bandOptions)

  • 给它一个
    void
    返回类型,使其成为setter方法:

    public void带宽客户端(IOOptions带宽选项)

  • 如果选择选项1,请将其添加到
    BandTest.cs
    文件中:

    var bandSettings=新的bandSettings();
    var bandOptions=新选项包装器(带设置);
    var bandUtil=新的bandUtil(bandOptions);
    var client=bandUtil.client();
    
    如果选择选项2,请将其添加到
    BandTest.cs
    文件中:

    var-bandUtil=new-bandUtil();
    var bandSettings=新的bandSettings();
    var bandOptions=新选项包装器(带设置);
    bandUtil.BandWidthClient(带宽选项);
    var client=bandUtil.client();
    
    您可以分享如何尝试访问它吗?您可以分享如何尝试从代码中的BandUtil类访问Client()方法。您可以分享如何尝试访问它吗?您可以分享如何尝试访问Client()方法吗方法。您不能实例化接口。非常感谢您回复@harleybl@crgolden-我将IOptions接口模拟为一个类,以生成一些自包含且可编译的东西。您不能实例化接口。非常感谢您回复@harleybl@crgolden-我将IOptions接口模拟为