【发布时间】:2013-05-28 19:11:53
【问题描述】:
我正在尝试使用来自 PowerShell 的 Leonardo B 的 litjson 库。我需要使用的库的入口点是静态方法。我可以使用 add-type 加载程序集,没问题。尝试使用静态方法会出现此错误:
PS C:\Users\david>[litjson.jsonmapper]::toobject("{`"foo`":`"bar`"}")
format-default : The JsonData instance has to be initialized first
+ CategoryInfo : NotSpecified: (:) [format-default], InvalidOperationException
+ FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.PowerShell.Commands.FormatDefaultCommand
我虽然发生的事情是该课程的 static constructor 没有运行,但 Lars Truijens 纠正了这种误解。该错误是 JsonData 类的异常。虽然同一行代码在 VS2012(针对 .net 3.5)中可以正常工作,但它不会在 powershell 中运行。
更新:
此单元测试在 Visual Studio 2012 中通过:
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using LitJson;
namespace litjsonTest
{
[TestClass]
public class TestJsonMapper
{
[TestMethod]
public void TestMethod1()
{
var obj = LitJson.JsonMapper.ToObject("{\"foo\":\"bar\"}");
Assert.IsNotNull(obj);
}
}
}
【问题讨论】:
-
PowerShell 3 通过 ConvertFrom-Json 和 ConvertTo-Json 支持 JSON。见stackoverflow.com/questions/16575419/…
标签: c# powershell static .net-assembly litjson