【发布时间】:2010-12-11 02:08:07
【问题描述】:
我有以下 XML 文件
<Test>
<Modules>
<Module Name= "Test1">
<QueueName Name="Test1Active1" Active="True"></QueueName>
<QueueName Name="Test1Active2" Active="True"></QueueName>
<QueueName Name="Test1Active3" Active="True"></QueueName>
<QueueName Name="Test1Active4" Active="True"></QueueName>
<QueueName Name="Test1Inactive1" Active="False"></QueueName>
<QueueName Name="Test1Inactive2" Active="False"></QueueName>
<QueueName Name="Test1Inactive3" Active="False"></QueueName>
<QueueName Name="Test1Inactive4" Active="False"></QueueName>
<OtherSettings TimePause="20" TimeElasped="25" NumberOfThreads="5">
<Connection tag="Test1Test1" Connection="TestCon1"></Connection>
<Connection tag="Test1Test2" Connection="TestCon2"></Connection>
<Url Tag="Test1Test1" Connection="TestUrl"></Url>
<Url Tag="Test1Test2" Connection="TestUrl1"></Url>
</OtherSettings>
</Module>
<Module Name= "Test2">
<QueueName Name="Test2Active1" Active="True"></QueueName>
<QueueName Name="Test2Active2" Active="True"></QueueName>
<QueueName Name="Test2Active3" Active="True"></QueueName>
<QueueName Name="Test2Active4" Active="True"></QueueName>
<QueueName Name="Test2Inactive1" Active="False"></QueueName>
<QueueName Name="Test2Inactive2" Active="False"></QueueName>
<QueueName Name="Test2Inactive3" Active="False"></QueueName>
<QueueName Name="Test2Inactive4" Active="False"></QueueName>
<OtherSettings>
<Connection Tag="Test2Test1" Connection="TestCon1"></Connection>
<Connection Tag="Test2Test2" Connection="TestCon2"></Connection>
<Url Tag="Test2Test1" Connection="TestUrl"></Url>
<Url Tag="Test2Test2" Connection="TestUrl1"></Url>
</OtherSettings>
</Module>
</Modules>
</Test>
我试图从这个类中填补课程
Partial Public Class Modules
Private _moduleName As String
Private _queueName As IEnumerable(Of QueueName)
Private _otherSetting As OtherSetting
Public Sub New()
End Sub
<DebuggerBrowsable(DebuggerBrowsableState.Never)> _
Public Property ModuleName() As String
Get
Return _moduleName
End Get
Set(ByVal value As String)
_moduleName = value
End Set
End Property
<DebuggerBrowsable(DebuggerBrowsableState.Never)> _
Public Property QueueName() As IEnumerable(Of QueueName)
Get
Return _queueName
End Get
Set(ByVal value As IEnumerable(Of QueueName))
_queueName = value
End Set
End Property
<DebuggerBrowsable(DebuggerBrowsableState.Never)> _
Public Property OtherSetting() As OtherSetting
Get
Return _otherSetting
End Get
Set(ByVal value As OtherSetting)
_otherSetting = value
End Set
End Property
End Class
这些工作
Friend Function GetDataModules() As List(Of Modules)
Dim xdoc As XDocument = OpenXml()
Dim modules = (From q In xdoc...<Modules>.<Module> _
Select New Modules With { _
.ModuleName = q.@Name _
}).ToList
Return modules
End Function
Friend Function GetDataQueueNames(ByVal ModuleName As String, ByVal isActive As Boolean) As List(Of QueueName)
Dim xdoc As XDocument = OpenXml()
Dim active = (From q In xdoc...<Modules>.<Module> _
Where q.@Name = ModuleName _
From l In q.<QueueName> _
Where Convert.ToBoolean(l.@Active) = isActive _
Select New QueueName With { _
.Name = l.@Name, _
.Active = Convert.ToBoolean(l.@Active) _
}).ToList
Return active
End Function
这不是
Protected Function GetAllData() As List(Of Modules)
Dim xdoc As XDocument = OpenXml()
Dim All = From m In xdoc...<Module>.<Module> _
Select New Modules With { _
.ModuleName = m.@Name _
}, _
.QueueName = From q In m...<QueueName> _
Select New QueueName With { _
.Name = q.@Name, _
.Active = Convert.ToBoolean(q.@Active) _
}, _
.OtherSetting = From o In m...<OtherSettings> _
Select New OtherSetting() With { _
.TimeElasped = Convert.ToInt32(o.@TimeElasped), _
.TimePause = Convert.ToInt32(o.@TimePause), _
.NumberOfThreads = Convert.ToInt32(o.@NumberOfThreads) _
}, _
.Connection = From c In m...<Connection> _
Select New Connection With { _
.ConnectionString = c.@Connection, _
.Tag = c.@Tag _
}, _
.URL = From u In m...<Url> _
Select New URL() With { _
.Tag = u.@Tag, _
.URL = u.@Url _
}.tolist
End Function
请帮忙
【问题讨论】:
-
它是抛出某种异常还是您只是没有收到预期的结果?
-
我无法使用括号将语法写入以将其设置为 tolist
标签: vb.net syntax linq-to-xml