Больше как любопытство, чем как решение:
dynamic e = new ExpandoObject();
var value = 1;
var key = "Key";
var resul1 = RuntimeOps.ExpandoTrySetValue(
e,
null,
-1,
value,
key,
true); // The last parameter is ignoreCase
object value2;
var result2 = RuntimeOps.ExpandoTryGetValue(
e,
null,
-1,
key.ToLowerInvariant(),
true,
out value2); // The last parameter is ignoreCase
RuntimeOps.ExpandoTryGetValue/ExpandoTrySetValue
использовать внутренние методы ExpandoObject
, которые могут контролировать чувствительность к регистру. null, -1,
параметры берутся из значений, используемых внутри ExpandoObject
(RuntimeOps
напрямую вызывает внутренние методы ExpandoObject
)
Помните, что эти методы This API supports the .NET Framework infrastructure and is not intended to be used directly from your code.