C # динамически устанавливаемое свойство [duplicate]

Я предполагаю, что при инициализации «помощника биллинга» вы предоставляете ему открытый ключ Base64 с консоли разработчика. Этот ключ соответствует вашему сертификату выпуска.

Сообщение, которое вы получаете, предполагает, что вы, вероятно, пытаетесь запустить приложение в режиме отладки. Это означает, что ваше приложение подписано с использованием сертификата отладки (по умолчанию). Если я прав, это объясняет, почему вы не авторизованы.

К сожалению, единственный способ протестировать биллинг в приложении - это приложение, подписанное с использованием сертификата выпуска, на устройстве, зарегистрированном в для учетной записи, которая определяется как «учетные записи Gmail с доступом для тестирования», и ваше приложение должно быть опубликовано в Google Play (альфа / бета / производство).

29
задан David Archer 29 November 2018 в 10:28
поделиться

5 ответов

objName.GetType().GetProperty("nameOfProperty").SetValue(objName, objValue, null)

50
ответ дан josejuan 29 November 2018 в 10:28
поделиться

Для этого можно использовать Отражение , например

.
private void SetObjectProperty(string propertyName, string value, object obj)
{
    PropertyInfo propertyInfo = obj.GetType().GetProperty(propertyName);
    // make sure object has the property we are after
    if (propertyInfo != null)
    {
        propertyInfo.SetValue(obj, value, null);
    }
}
34
ответ дан James 29 November 2018 в 10:28
поделиться

Сначала получите информацию о свойстве, а затем установите значение свойства:

PropertyInfo propertyInfo = objName.GetType().GetProperty(propertyName);
propertyInfo.SetValue(propertyInfo, value, null);
1
ответ дан harriyott 29 November 2018 в 10:28
поделиться

Вы можете использовать Type.InvokeMember для этого.

private void SetObjectProperty(string propertyName, string value, rel objName) 
{ 
    objName.GetType().InvokeMember(propertyName, 
        BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetProperty, 
        Type.DefaultBinder, objName, value); 
} 
3
ответ дан Ekk 29 November 2018 в 10:28
поделиться

Вы можете сделать это с помощью отражения:

void SetObjectProperty(object theObject, string propertyName, object value)
{
  Type type=theObject.GetType();
  var property=type.GetProperty(propertyName);
  var setter=property.SetMethod();
  setter.Invoke(theObject, new ojbject[]{value});
}

ПРИМЕЧАНИЕ. Обработка ошибок намеренно оставлена ​​для удобства чтения.

1
ответ дан Sean 29 November 2018 в 10:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: