/**
* MULIT-BYTE UNSERIALIZE
*
* UTF-8 will screw up a serialized string
*
* @param string
* @return string
*/
function mb_unserialize($string) {
$string = preg_replace_callback('/!s:(\d+):"(.*?)";!se/', function($matches) { return 's:'.strlen($matches[1]).':"'.$matches[1].'";'; }, $string);
return unserialize($string);
}
Чтобы использовать сборку смешанного режима CLR 2.0 , вам необходимо изменить файл App.Config, включив в него:
<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
Ключ - это флаг useLegacyV2RuntimeActivationPolicy
. Это заставляет среду CLR использовать последнюю версию (4.0) для загрузки сборки в смешанном режиме. Без этого не получится.
Обратите внимание, что это имеет значение только для сборок в смешанном режиме (C ++ / CLI). Вы можете загрузить все управляемые сборки CLR 2, не указывая это в app.config
.
Это сообщение на форуме в Центре разработчиков .NET Framework. Оно может дать некоторое представление.
(Добавить в файл конфигурации приложения.)
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>