在下面的代码中,我有一个字符串值,它有一个路径。我想将String值放在静态方法中但是我得到的Object引用没有设置为object的实例。如果我在该代码中编写路径它但是没有字符串值,它有路径.pls帮助我解决问题。
var projectname = name.ProjectName;
var batchname = name.BatchName;
var imagename = name.ImageName;
string concatenatedStr = "/"+ projectname + "/" + batchname + "/Input/" + imagename;
[WebMethod]
public static string buttonclickImage(string pageNo)
{
int iPageNo = 0;
if (pageNo != string.Empty && pageNo != "undefined")
iPageNo = Int32.Parse(pageNo);
FileTransfer.FileTransferClient fileTranz = new FileTransfer.FileTransferClient();
FileDto file = fileTranz.GetTifftoJPEG("concatenatedStr", iPageNo, "gmasdll");
var fileData = Convert.ToBase64String(file.Content);//throws error
return fileData;
}
答案 0 :(得分:3)
表示文件为null或file.Content为null。
可以避免异常if(file!=null && file.Content!=null)
{
//your remaining code
}
理想情况下,您应首先检查它为空的原因
修改强> 根据你的评论我推断你想传递你的变数。要么使你的字符串静态,要么使你的方法不是静态的或将字符串传递给你的方法
[WebMethod]
public static string buttonclickImage(string pageNo)
{
int iPageNo = 0;
if (pageNo != string.Empty && pageNo != "undefined")
iPageNo = Int32.Parse(pageNo);
FileTransfer.FileTransferClient fileTranz = new FileTransfer.FileTransferClient();
//note the change here. no double quotes.
FileDto file = fileTranz.GetTifftoJPEG(concatenatedStr, iPageNo, "gmasdll");
var fileData = Convert.ToBase64String(file.Content);//throws error
return fileData;
}
答案 1 :(得分:1)
你没有传递concatenatedStr
变量中存储的值...你传入了文字字符串“concatenatedStr”。
改变这个:
FileDto file = fileTranz.GetTifftoJPEG("concatenatedStr", iPageNo, "gmasdll");
对此:
FileDto file = fileTranz.GetTifftoJPEG(concatenatedStr, iPageNo, "gmasdll");
您还需要将变量设置为静态,因为您的方法是静态的。或者保持变量不变,并使方法非静态,如果这是一个选项。
我对这些变量的位置感到有点困惑。它们在范围上似乎是类级别的,但是您将无法在该位置使用var
。
我猜你也可以修改你的方法来接受一个额外的参数,然后从你调用它的地方传入值。
public static string buttonclickImage(string pageNo, string concatenatedStr)
{
...
答案 2 :(得分:0)
这有效
[WebMethod]
public static string buttonclickImage(string pageNo)
{
var name = (name)HttpContext.Current.Session["Projectname"];
var projectname = name.ProjectName;
var batchname = name.BatchName;
var imagename = name.ImageName;
string concatenatedStr = "/" + projectname + "/" + batchname + "/Input/" + imagename;
int iPageNo = 0;
if (pageNo != string.Empty && pageNo != "undefined")
iPageNo = Int32.Parse(pageNo);
FileTransfer.FileTransferClient fileTranz = new FileTransfer.FileTransferClient();
FileDto file = fileTranz.GetTifftoJPEG(concatenatedStr, iPageNo, "gmasdll");
var fileData = Convert.ToBase64String(file.Content);
return fileData;
}
答案 3 :(得分:0)
首先构造值" concatenatedStr"变量使用String.Format。
例如: -
var projectname = name.ProjectName;
var batchname = name.BatchName;
var imagename = name.ImageName;
string concatenatedStr = string.Format(" / {0} / {1} / Input / {2}",projectname,batchname,imagename);
将调试点放在此处并检查什么值" concatenatedStr"具有。 如果" concatenatedStr"是null然后肯定你会得到" Nullreference例外" ....
因此可能存在" concatenatedStr" .....这样深入检查连接变量......
希望这有效......