반응형
List<string> list2 = new List<string>();
ArrayList arList = new ArrayList();
for(int j = 0 ; j = 3; j++)
{
for (int i = 0; i < 10; i++)
{
list2.Add(i.ToString());
}
arList.Add(list2);
}
//ArrayList를 직렬화
//Soap 메세지가 XML기반이끼대문에 String으로 받아야함
string t123 = CommonClass.SerializeListStringArrayList(arList);
serviceClient.Insert(LoginData.CommonCode, list1.ToArray(), t123 );
....
public static class CommonClass
{
public static string SerializeListStringArrayList(ArrayList obj)
{
XmlDocument doc = new XmlDocument();
Type[] extraTypes = new Type[1];
extraTypes[0] = typeof(List<string>);
XmlSerializer serializer = new XmlSerializer(typeof(ArrayList), extraTypes);
MemoryStream stream = new MemoryStream();
try
{
serializer.Serialize(stream, obj);
stream.Position = 0;
doc.Load(stream);
return doc.InnerXml;
}
catch { throw; }
finally
{
stream.Close();
stream.Dispose();
}
}
}
-- Service 단
[OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)]
public int Insert(string commCode, string[] merchandiseKey, string merchandiseDetailKey)
{
//ArrayList로 역직렬화
ArrayList alist = SystemClass.DeSerializeListStringArrayList (merchandiseDetailKey);
....
}
class SystemClass
{
class SystemClass
{
public static ArrayList DeSerializeListStringArrayList(string serializedData)
{
ArrayList list = new ArrayList();
Type[] extraTypes = new Type[1];
extraTypes[0] = typeof(List<string>);
XmlSerializer serializer = new XmlSerializer(typeof(ArrayList), extraTypes);
XmlReader xReader = XmlReader.Create(new StringReader(serializedData));
try
{
object obj = serializer.Deserialize(xReader);
list = (ArrayList)obj;
}
catch
{
throw;
}
finally
{
xReader.Close();
}
return list;
}
}
}
'.NET > WCF' 카테고리의 다른 글
VS2008 WCF 메서드 오버로딩 버그 발견 | Visual Studio 2008 WCF Method Overloading Bug | HTTP 404 Error (5) | 2010.02.12 |
---|---|
[WCF] WSDL 서버주소가 PC명으로 고정되는경우 IIS 6.0 (0) | 2010.01.21 |
WCF 디버깅 강좌 (0) | 2009.12.31 |
WCF 디버깅 메세지 활성 (0) | 2009.12.30 |
WCF웹서비스를 이용한 간단한 예제 (0) | 2009.12.11 |