Первая проблема, которую я вижу, заключается в том, что конструктор (BandWithClient) не соответствует имени класса (BandUtil).
Я не уверен, что еще не так, но вот быстрое и грязное воссоздание, показывающее, как можно использовать Client ()
using System;
public class IOptions<T> {
public T Value { get; set; }
}
public class BandSettings {
public string UserID { get; set; }
public string ApiToken { get; set; }
public string ApiSecret { get; set; }
}
public class Client {
public Client(string userId, string apiToken, string secret) {
}
}
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);
}
}
public class Program
{
public static void Main()
{
var bandSettings = new BandSettings {
UserID = "Foo",
ApiToken = "Baz",
ApiSecret = "Bar"
};
var options = new IOptions<BandSettings> { Value = bandSettings };
var util = new BandUtil(options);
var client = util.Client();
}
}
Вот dotnetfiddle с кодом выше: https://dotnetfiddle.net/srx9kM