2009-06-20 1 views
0

JavaScript 코드에 링크드리스트 클래스를 만든 다음 해당 코드를 C#으로 변환했습니다.C# Web Service에서 JavaScript 함수로 연결된 목록을 전달할 수 있습니까?

지금은 배열 이름을 얻기 위해 웹 서비스를 호출하는 JavaScript 함수가 있습니다. JavaScript onComplete 함수는이 배열을 가져와 링크 된 목록으로 만듭니다.

웹 서비스에서 링크 된 목록을 만들고 JavaScript 코드에서 사용하기 위해 다시 전달할 수있는 방법이 있습니까? 아니면 링크 된 목록이 제대로 전송되지 않을 수 있습니까?

편집 : 제 질문을 좀 더 이해가 가도록 만들어 드리겠습니다. 클래스에 의해 생성 된 커스텀 메이드 오브젝트가 있다면 .... class User라고하고 그 클래스에는 user name이라는 변수가 있습니다. User 객체 objUser를 C#에서 JavaScript로 다시 전달하면 JavaScript는 objUser.userName에 액세스 할 수 있음을 어떻게 알 수 있습니까? 이 사용자 객체에서 호출 할 수있는 가능한 메소드는 무엇입니까?

+1

링크드리스트와 같은 것은 없습니다. "링크 된 목록"이라고 부르는 것을 생성하는 자바 스크립트 코드 만 있습니다. "연결된 목록"이 제대로 전송되지 않는다고 생각하는 이유는 무엇입니까? 그것을 시도하고 실패 했습니까? 너 무슨 짓을 한거야?어떻게 실패 했습니까? "연결된 목록"은 어떤 모습입니까? –

+0

@Matt : Google "JSON" BTW, 자바 스크립트 및 웹 서비스를 1 주일 이상 사용하고 JSON에 대해 들어 본 적이 없습니까? –

+0

@Matt : JavaScript의 배열은 실제로 "문서화"되어 있습니다. 그들은 심지어 어떤 "책"에 언급되어 있습니다. 그것들은 더 고급 기능 중 하나가 아닙니다. –

답변

1

ASP.NET MVC 응용 프로그램을 만들 때 비슷한 질문이있었습니다. 기본적으로 대답은 JavaScript에는 C#에서와 같은 유형의 개념이 없다는 것입니다.

응용 프로그램에서 JSON을 사용하여 클라이언트와 서버간에 데이터를 전달하기로 결정했다고 가정 해 보겠습니다. JSON, XML, YAML 또는 다른 형식의 선택은 중요하지 않습니다.

서버 측에서

, 당신의 C# 코드에서,이 같은 작업을 수행 할 수 있습니다 (당신이 어떤 종류의 JSON 라이브러리를 사용하는 가정) 서버 측 : 당신이 지금

var myLinkedList = JsonConvert.DeserializeObject<LinkedList>(json); 

을 LinkedList 유형의 myLinkedList 변수가 있습니다. myLinkedList는 이제 모든 LinkedList 인스턴스처럼 작동합니다.

클라이언트 측

그러나 클라이언트 사이트에 자바 스크립트 코드에서, 당신은 아마 같은 것을 할 :

function LinkedList(){ 
    //Constructor for your LinkedList 
}; 

LinkedList.prototype = { 
    //Various functions to operate on your linked list 
}; 

당신은 반환 데이터를 직렬화하기 위해이 같은 것을 작성해야 서버에서 :

var linkedList = JSON.parse(jsonString); 

이 직렬화 된 데이터를 i 행으로 표시 할 방법이 없음을 유의하십시오 이전에 정의한 LinkedList "클래스"에 추가합니다. JavaScript는 LinkedList가 프로토 타입을 사용하는 기능을 추가 한 "클래스"라는 것을 이해하지 못합니다.

돌아 오는 것은 JavaScript 개체입니다.

var linkedList = new LinkedList(); 
var deserializedObject = JSON.parse(jsonString); 

linkedList.Items = deserializedObject.Items; 

기본적으로, 당신은 당신의 LinkedList의 변수로 직렬화 된 객체의 모든 상태를 복사해야 할 것 :이 문제를 해결 얻을

한 가지 방법은 같은 것을 할 것입니다.

+1

JSON은 "Javascript Object Notation"의 약자이며 자바 스크립트와 백엔드 코드간에 개체를 교환하기위한 데이터 형식이며 그 반대의 경우도 마찬가지입니다. C# 코드에서 JSON.NET과 같은 라이브러리를 사용하고 코드에서 JSON을 사용하려면 www.json.org에서 파싱 라이브러리와 같은 파싱 라이브러리를 사용하십시오. –