실버라이트를 개발하다 보니 웹 서비스를 많이 사용하게 되는데, 한 번은 웹 서비스로 전달하는 파라미터를 ArrayOfString 써서 개발을 하고 보니 잘되다가 웹 서비스 업데이트를 하고 나서 에러가 나는 겁니다.
자세히 보니까, 로컬로는 잘 인식을 하는데 로컬이 아닌 웹 서비스를 참조를 하게 되면 그 에러가 나더라고요.
물론 별 상관없는 우연적인 이야기입니다만.. 어쨌든, 해결책은 다음과 같습니다.
해당 웹서비스 데이터가 있는 폴더의 Reference.cs 파일을 열어 ArrayOfString 이 놈들을 선언을 해주고 사용하면 됩니다.
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.CollectionDataContractAttribute(Name = "ArrayOfInt", Namespace = "http://tempuri.org/", ItemName = "int")]
public class ArrayOfInt : System.Collections.ObjectModel.ObservableCollection<int>
{
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.CollectionDataContractAttribute(Name = "ArrayOfString", Namespace = "http://tempuri.org/", ItemName = "string")]
public class ArrayOfString : System.Collections.ObjectModel.ObservableCollection<string>
{
}
파일을 열어서, using 밑에 붙여넣기 해주시면 해결이 되는거예요. 네.
다른 거 말고 int, string만써서 그렇지 다른 타입들도 똑같이 만들어주면 될 것 같네요. :D