Существует ли способ вызвать “Любой ЦП”, скомпилировал приложение для выполнения в режиме на 32 бита на ОС на 64 бита?

Не стоит забывать и о EqualityComparer. Но это не публичная собственность. Таким образом, вы должны использовать отражение, чтобы получить его.

public static IEqualityComparer GetEqualityComparer(this NameObjectCollectionBase nameObjectCollection)
  {
  PropertyInfo propertyInfo = typeof(NameObjectCollectionBase).GetProperty("Comparer", BindingFlags.Instance | BindingFlags.NonPublic);
  return (IEqualityComparer)propertyInfo.GetValue(nameObjectCollection);
  }

public static IEqualityComparer<string> GetEqualityComparer(this NameValueCollection nameValueCollection)
  {
  return (IEqualityComparer<string>)((NameObjectCollectionBase)nameValueCollection).GetEqualityComparer();
  }

public static Dictionary<string, string> ToDictionary(this NameValueCollection nameValueCollection)
  {
  Dictionary<string, string> dictionary =
    nameValueCollection.AllKeys.ToDictionary(x => x, x => nameValueCollection[x], nameValueCollection.GetEqualityComparer());
  return dictionary;
  }
11
задан Magnus Johansson 12 June 2009 в 08:51
поделиться

1 ответ

Думаю, это можно сделать с помощью CorFlags.exe

Примерно так:
CorFlags yourassembly.exe / 32BIT +

Обратите внимание, что если сборка имеет строгое имя, вам также придется использовать параметр / force, который нарушает строгое именование, поэтому вам придется отказаться от сборки.

10
ответ дан 3 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

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