【发布时间】:2013-04-04 06:22:10
【问题描述】:
如何在这里解决“引用的对象没有任何价值”.....
具有字符串类型属性的 logDTO 对象。
有些属性的值是空的。它抛出上面引用的错误。我尝试使用 .ToString() 但仍然抛出错误。
Public Sub WriteJobLog(ByVal logDTO As JobLogDTO)
Dim strArray As String() = {logDTO.Mode.ToString(), logDTO.UniqueId.ToString(), logDTO.ThreadId.ToString(), _
logDTO.StartTime.ToString(), logDTO.FinishTime.ToString(), logDTO.TimeTaken.ToString(), _
logDTO.PropertyId.ToString(), logDTO.ChannelId.ToString(), logDTO.URL.ToString(), _
logDTO.ExceptionOrResult.ToString(), logDTO.AvblWorkerThread.ToString(), logDTO.AvblPortThread.ToString(), _
logDTO.AcqrdWorkerThread.ToString(), logDTO.AcqurdPortThread.ToString(), logDTO.JobsToProcess.ToString()}
Dim lLogObj As Logging = New Logging(JobType.JOB_TRANSACTTIONAL)
lLogObj.WriteLogFile(String.Join(Configuration.LogDelimiter, strArray))
End Sub
JobLogDTO
public class JobLogDTO
{
public string Mode { get; set; }
public string UniqueId { get; set; }
public string ThreadId { get; set; }
public string StartTime { get; set; }
public string FinishTime { get; set; }
public string TimeTaken { get; set; }
public string PropertyId { get; set; }
public string ChannelId { get; set; }
public string URL { get; set; }
public string ExceptionOrResult { get; set; }
public string AvblWorkerThread { get; set; }
public string AvblPortThread { get; set; }
public string AcqrdWorkerThread { get; set; }
public string AcqurdPortThread { get; set; }
public string JobsToProcess { get; set; }
}
更新:
logDTO 对象的值
AcqrdWorkerThread "24" String
AcqurdPortThread "24" String
AvblPortThread "400" String
AvblWorkerThread "399" String
ChannelId Nothing String
ExceptionOrResult Nothing String
FinishTime Nothing String
JobsToProcess "24" String
Mode "Parallel" String
PropertyId Nothing String
StartTime "04.04.2013 12:17:25" String
ThreadId "5" String
TimeTaken Nothing String
UniqueId "97693c1b-2bbc-4e40-a542-291568aeee4c" String
URL Nothing String
【问题讨论】:
-
logDTO和logDTO.Mode的值是多少?
-
你检查logDTO是不是什么都没有吗?使用断点
-
@Adrian Godong:logDTO 的附加值。请找到更新后的问题。
-
@RajaPrabhu:是的,有些属性值什么都不是。我尝试使用 .ToString() 但仍然抛出错误。
-
如果对象什么都不是,.tostring 将不起作用 - 因为没有对象可以传递其“tostring”值。你可以做什么:用一个空值初始化你的属性,如果是字符串“”。或者修改你的 getter 方法,以便当对象什么都不是时它们传递其他东西......
标签: vb.net