Как описано в этой ошибке на Facebook, вы также можете запросить конкретные размеры изображений теперь с помощью нового синтаксиса API [ field ].
Например:
https://graph.facebook.com/____OBJECT_ID____?fields=picture.type(large)
Я нашел способ решить проблему, с которой я столкнулся. Здесь мне помогло использование рефлекса.
Ниже приведено решение
var type= typeof(MyConfigPath);
var t = Activator.CreateInstance(type);
PropertyInfo propertyInfo = type.GetProperty("Value");
var configValue = configuration.GetValue<string>($"AppSettings:{type.Name}");
if (!string.IsNullOrEmpty(configValue) && propertyInfo != null)
{
propertyInfo.SetValue(t, configValue, null);
}
services.AddSingleton(type, t);
. Таким образом, я смог ввести мои сильно типизированные классы. Я использовал отражение, потому что то же самое, что я должен делать со многими типами в библиотеке классов.
Я получил эту идею с некоторыми R & amp; D и некоторое обсуждение с моей командой.
Прежде всего, если вы используете метод .Configure
, вы не будете вводить MyConfigPath
, но IOptions<MyConfigPath>
(посмотрите еще на свою первую ссылку). Таким образом, ваша инъекция становится примерно такой:
public MyClass(IOptions<MyConfigPath> myConfigPathOptions)
Во-вторых, configuration.GetSection
предназначен для доступа к целому разделу, а не только к строке. Если вы хотите напрямую получить доступ к «MyConfigPath» из JSON, вы можете использовать configuration["AppSettings:MyConfigPath"]
. Вы можете использовать GetSection
как configuration.GetSection("AppSettings")
, чтобы получить все настройки приложения в целом.
Предлагаю вам ознакомиться с документацией для IConfiguration и IOptions
Я предполагаю, что вы действительно пытаетесь сделать что-то например:
У вас есть класс для всех ваших настроек:
public class MyAppSettings {
public string MyConfigPath {get; set;}
public int MyOtherSetting { get; set; } // sample of how you could have more
}
Json для вышеупомянутого с добавленным «MyOtherSetting» будет выглядеть примерно так:
{
"AppSettings": {
"MyConfigPath": "C:\\EmployeeUpload",
"MyOtherSetting" : 501
}
}
В вашем классе запуска вы можете использовать это:
services.Configure<MyAppSettings>(configuration.GetSection("AppSettings")
Теперь для инъекций вам нужно будет использовать что-то вроде этого:
MyClass(IOptions<MyAppSettings> settingOptions)
{
_myConfigPath = myConfigPath.Value.MyConfigPath;
}
myConfigPath.Value
равным нулю?
– Neville Nazerane
13 July 2018 в 07:53
services.AddSingleton
, вы должны поддерживать свою структуру
– Neville Nazerane
13 July 2018 в 07:57