Json Microsoft Azure dll在.NET 4.0中引发异常
我已经开发了EXE项目(用于启动任务)并使用了Microsoft Azure的以下DLL 它在.Net framework 3.5中工作得很好,但在我的例子中,我需要使用system.runtime.serialization按照以下方式将类序列化为json字符串Json Microsoft Azure dll在.NET 4.0中引发异常,json,serialization,azure,Json,Serialization,Azure,我已经开发了EXE项目(用于启动任务)并使用了Microsoft Azure的以下DLL 它在.Net framework 3.5中工作得很好,但在我的例子中,我需要使用system.runtime.serialization按照以下方式将类序列化为json字符串 public static string Serialize<T>(T obj) { System.Runtime.Serialization.Json.DataContract
public static string Serialize<T>(T obj)
{
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new
System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType());
MemoryStream ms = new MemoryStream();
serializer.WriteObject(ms, obj);
string retVal = Encoding.Default.GetString(ms.ToArray());
ms.Dispose();
return retVal;
}
公共静态字符串序列化(T obj)
{
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer=新
System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType());
MemoryStream ms=新的MemoryStream();
serializer.WriteObject(ms,obj);
string retVal=Encoding.Default.GetString(ms.ToArray());
Dispose女士();
返回返回;
}
为此,我需要将框架更改为4.0,但当时我从Azure DLL得到了异常
像
Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment的类型初始值设定项引发异常
我认为微软所有的DLL都是向后兼容的,所以这件事出了什么问题
我应该找到另一种方法来序列化为json字符串?或
我应该将Azure的DLL更改为最新版本吗
提前感谢。如果您在.NET4中编写了一个控制台应用程序,并且希望使用RoleEnvironment,那么您将得到一个错误: “Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment”的类型初始值设定项引发异常 要解决此问题,只需在默认app.config中生成的启动标记中添加“useLegacyV2RuntimeActivationPolicy”:
<startup useLegacyV2RuntimeActivationPolicy="true">
这是因为Microsoft.WindowsAzure.ServiceRuntime.dll是混合模式程序集。引用任何混合模式程序集都需要useLegacyV2RuntimeActivationPolicy属性,而不仅仅是Windows Azure程序集。您可能需要检查的一件事是Visual Studio中.Net项目的目标框架。默认情况下,当您使用.Net framework在VS中创建项目时,它使用“.Net framework 4客户端配置文件”。尝试将其更改为“.Net Framework 4”,看看是否有帮助。它不是“.Net Framework 4客户端配置文件”,我在它是“.Net Framework 4”之前检查过它。。