Это не рекомендуется, но вы можете моделировать использование статических классов в качестве параметров.
Создайте класс Instance следующим образом:
public class Instance
{
public Type StaticObject { get; private set; }
public Instance(Type staticType)
{
StaticObject = staticType;
}
public object Call(string name, params object[] parameters)
{
MethodInfo method = StaticObject.GetMethod(name);
return method.Invoke(StaticObject, parameters);
}
public object Call(string name)
{
return Call(name, null);
}
}
Тогда ваша функция, где вы будете использовать статический класс:
private static void YourFunction(Instance instance)
{
instance.Call("TheNameOfMethodToCall", null);
}
Например. Звонок:
- Первый параметр - это имя метода вашего статического класса для вызова
- Второй параметр - это список аргументов, передаваемых методу.
И используйте вот так:
static void Main(string[] args)
{
YourFunction(new Instance(typeof(YourStaticClass)));
Console.ReadKey();
}