C# 具有解析抛出错误的类库
我正在尝试开发一个包含Parse.com的类库 我创建了一个空的、干净的类库,然后使用Nuget添加了Newtonsoft.Json、Parse和Parse.NetFx45 然后,我从Parse.com网站添加了一个简单的“helloworld”函数,并在类库中创建了一个函数 以下是我的功能:C# 具有解析抛出错误的类库,c#,parse-platform,class-library,typeinitializeexception,C#,Parse Platform,Class Library,Typeinitializeexception,我正在尝试开发一个包含Parse.com的类库 我创建了一个空的、干净的类库,然后使用Nuget添加了Newtonsoft.Json、Parse和Parse.NetFx45 然后,我从Parse.com网站添加了一个简单的“helloworld”函数,并在类库中创建了一个函数 以下是我的功能: public async static void testParse() { ParseClient.Initialize("MyApplicatonID", "My.NetKey");
public async static void testParse()
{
ParseClient.Initialize("MyApplicatonID", "My.NetKey");
var testObject = new ParseObject("TestObject");
testObject["foo"] = "bar";
await testObject.SaveAsync();
}
然后,我添加了一个单元测试项目,引用了我的类库并编写了一个测试,如下所示:
[TestMethod]
public void TestParse()
{
Experior.ParseFunctions.testParse();
}
using Parse;
using System.Threading.Tasks;
namespace ExperiorWrapper
{
public class ParseFunctions
{
public static async Task testParse()
{
ParseClient.Initialize("xxxx", "xxxx");
var testObject = new ParseObject("TestObject");
testObject["foo"] = "bar";
await testObject.SaveAsync();
}
}
}
当我运行测试时,它在的ParseClient.Initialize
行抛出以下错误:
System.TypeInitializationException未处理消息:未处理
中发生“System.TypeInitializationException”类型的异常
mscorlib.dll其他信息:的类型初始值设定项
“Parse.ParseClient”引发了异常
我在我读到的一个线程中做了一些搜索,其中一个线程暗示Parse不喜欢被包装在类库中
因此,我想,我将在Windows窗体项目中测试相同的代码,并通过一个简单的按钮调用代码
而且它工作得很好
有没有人能看到我做错了什么,或者提出问题所在
如有任何提示,将不胜感激 多亏了@Samuel,我修改了我的代码如下:
[TestMethod]
public void TestParse()
{
Experior.ParseFunctions.testParse();
}
using Parse;
using System.Threading.Tasks;
namespace ExperiorWrapper
{
public class ParseFunctions
{
public static async Task testParse()
{
ParseClient.Initialize("xxxx", "xxxx");
var testObject = new ParseObject("TestObject");
testObject["foo"] = "bar";
await testObject.SaveAsync();
}
}
}
现在的测试是这样的:
[TestMethod]
public async Task TestParse()
{
await ParseFunctions.testParse();
}
我遇到的另一个重要问题是,必须添加Newtonsoft.Json、Parse和Parse.NetFx45作为对测试项目的引用,以使其正常工作
HTH哪一行代码会引发异常?@Tarec“当我运行测试时,它会在ParseClient上引发以下错误。Initialize”删除异步并检查行为(如果存在,您需要调用
Save
,而不是SaveAsync
,或者手动等待完成)。例如,nUnit能够创建异步测试以正确执行异步方法,而且在任何情况下都需要等待testParse
。或者将测试签名更改为public async void TestParse()
,不要忘记等待。