WCF Operations and Multidimensional Arrays
Posted
by JoshReuben
on Geeks with Blogs
See other posts from Geeks with Blogs
or by JoshReuben
Published on Wed, 16 Mar 2011 10:31:32 GMT
Indexed on
2011/03/16
16:11 UTC
Read the original article
Hit count: 356
You cant pass MultiD arrays accross the wire using WCF - you need to pass jagged arrays.
heres 2 extension methods that will allow you to convert prior to serialzation and convert back after deserialization:
public static T[,] ToMultiD<T>(this T[][] jArray) { int i = jArray.Count(); int j = jArray.Select(x => x.Count()).Aggregate(0, (current, c) => (current > c) ? current : c); var mArray = new T[i, j]; for (int ii = 0; ii < i; ii++) { for (int jj = 0; jj < j; jj++) { mArray[ii, jj] = jArray[ii][jj]; } } return mArray; } public static T[][] ToJagged<T>(this T[,] mArray) { var cols = mArray.GetLength(0); var rows = mArray.GetLength(1); var jArray = new T[cols][]; for (int i = 0; i < cols; i++) { jArray[i] = new T[rows]; for (int j = 0; j < rows; j++) { jArray[i][j] = mArray[i, j]; } } return jArray; }
enjoy!
© Geeks with Blogs or respective owner