쥬라기 자바 스크립트 엔진을 통해 자바 스크립트에 노출되는 .NET 클래스를 만들려고합니다. 클래스는 HTTP 응답 객체를 나타냅니다. HTTP 응답에는 동일한 이름을 가진 여러 헤더가있을 수 있으므로 특정 이름의 헤더를 IEnumerable로 반환하는 메서드를 포함하고 싶습니다. Unsupported type: System.Collections.Generic.IList'1[System.String]
IEnumerable을 반환하는 메서드가있는 JavaScript에 .NET 객체를 노출 할 수 있습니까?
내가가 IList의에서 대해 getHeaders 메서드의 반환 형식을 변경 시도했다 :
public class JsResponseInstance : ObjectInstance
{
private IDictionary<string, IList<string>> _headers;
public JsResponseInstance(ObjectInstance prototype)
: base(prototype)
{
this.PopulateFunctions();
_headers = new Dictionary<string, IList<string>>();
}
[JSFunction(Name = "addHeader")]
public virtual void addHeader(string name, string value)
{
IList<string> vals;
bool exists = _headers.TryGetValue(name, out vals);
if (!exists)
{
vals = new List<string>();
_headers[name] = vals;
}
vals.Add(value);
}
[JSFunction(Name = "getHeaders")]
public virtual IList<string> getHeaders(string name)
{
IList<string> vals;
bool exists = _headers.TryGetValue(name, out vals);
if (!exists)
{
return new List<string>();
}
return vals;
}
}
나는 대해 getHeaders 방법을 테스트 할 때 나는 JavascriptException를 얻을 :
이
내가 지금까지 무엇을 가지고 string []을 추가하고 옵션 인 IsEnumerable 속성을 메서드를 장식하는 JSFunction 특성에 추가합니다. 두 변화 모두 변화를 가져 오지 않았지만 여전히 동일한 예외가 발생했습니다.JavaScript에 노출 된 .NET 클래스의 메서드에서 IEnumerable을 반환하는 방법이 있습니까?