将以下内容复制并粘贴到VS中的新控制台应用程序中。添加对System.Web和System.Web.Services的引用(我知道控制台应用程序不需要这些程序集,我只是向您展示了一段在我的Web应用程序中不起作用的代码片段)。.net:调试器突出显示实际未执行的代码行
虽然if语句中的两个条件都是假的,但事实证明这是真的。任何人都知道原因? (Visual Studio 2008中9.0.30729.1).NET 3.5 SP1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Services;
using System.Web;
namespace ConsoleApplication8
{
class Program
{
static void Main(string[] args)
{
string x = "qweqweqw";
string y =
"{\"textMedia\":[-1,-1,-1,-1,-1],\"textOperand\":[1,1,1,1,1],\"textString\":[\"\",\"\",\"\",\"\",\"\"],\"dateSite\":[-11],\"dateOperand\":[],\"dateString\":[],\"status\":[-11,0,0],\"media\":[-11,0,0],\"subItem\":true,\"context\":false,\"branchSearch\":false,\"profileIDs\":[2,5,18],\"profileViewIDs\":[48,58,38],\"currentSelectedBranch\":0}";
SaveSearch(x, y);
}
[WebMethod]
public static object SaveSearch(string name, string encodedSearch)
{
object response = new { };
string x = name;
string y = encodedSearch;
// Why does this if statement throw an exception if both equal false?
if (x.Trim().Equals(string.Empty) || y.Trim().Equals(string.Empty))
throw new AjaxErrorException("Save Search", "Something went wrong", "JSFunction");
try
{
{
return new
{
error = false,
name = name,
userID = 123,
date = DateTime.Now
};
}
}
catch (Exception ex)
{
String e;
if (HttpContext.Current.IsDebuggingEnabled)
e = ex.Message + "\n\n" + ex.StackTrace;
else
e = "error error aliens approaching";
throw new AjaxErrorException("Save Search", e, "");
}
return response;
}
public class AjaxErrorException : System.Exception
{
public AjaxErrorException(string title, string details, string function)
: base(title)
{ }
string _stackTrace;
public override string StackTrace
{
get
{
return _stackTrace;
}
}
}
}
}
逐步通过调试器,看看实际发生了什么。 – 2010-03-10 23:25:39
你甚至尝试过我的代码吗? – 2010-03-10 23:26:15
你甚至尝试过调试吗? – 2010-03-10 23:27:58