日期:2014-05-17  浏览次数:20963 次

C#静态类中的方法调用出错
静态类:

 public static class jsonToCsharp
    {

        public static List<T> JSONStringToList<T>(this string JsonStr)
        {
            JavaScriptSerializer Serializer = new JavaScriptSerializer();
            List<T> objs = Serializer.Deserialize<List<T>>(JsonStr);
            return objs;
        }

        public static T Deserialize<T>(string json)
        {
            T obj = Activator.CreateInstance<T>();
            using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
            {
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
                return (T)serializer.ReadObject(ms);
            }
        }
    }

然后在另外一个类中调用

using jsonToCsharp;
......
...... 
string JsonStr = "[{Name:'苹果',Price:5.5},{Name:'橘子',Price:2.5},{Name:'柿子',Price:16}]";
List<Product> products = new List<Product>();
products = jsonToCsharp.JSONStringToList<Product>(JsonStr);

错误:命名空间“jsonToCsharp”中不存在类型或命名空间名称“JSONStringToList”。是否缺少程序集引用?
求指导

------解决方案--------------------
jsonToCsharp  这个是类名 还是 命名空间, 我看似乎你的类名是 jsonToCsharp  然后引用的命名空间也是 jsonToCsharp。

jsonToCsharp.jsonToCsharp.JSONStringToList<Product>(JsonStr);
------解决方案--------------------
products = jsonToCsharp.JSONStringToList<Product>(JsonStr);
改为:
products = jsonToCsharp.jsonToCsharp.JSONStringToList<Product>(JsonStr);