2012-03-27 11 views
0

Ich versuche, über XML-Literale in VB zu lernen. In einem „Lernen“ Projekt, das die folgenden kompiliert auf einer Konsole Anwendungsvorlage basiert und läuft ohne Fehler (und ohne besondere Anweisungen des Import noch Referenzen hinzugefügt):Deklaration erwarteter Fehler für System.Xml.Linq.XDocument in VB.Net

Module Module1 
Sub Main() 
    Dim db As New AdventureWorksDataContext 
    Dim stores = <?xml version="1.0"?> 
       <stores> 
        <%= From vStoreWithDemographics In db.vStoreWithDemographics _ 
         Select <store> 
            <ID> 
             <%= vStoreWithDemographics.BusinessEntityID %> 
            </ID> 
            <Name> 
             <%= vStoreWithDemographics.Name %> 
            </Name> 
            <AnnualSales> 
             <%= vStoreWithDemographics.AnnualSales %> 
            </AnnualSales> 
            <BankName> 
             <%= vStoreWithDemographics.BankName %> 
            </BankName> 
            <SquareFeet> 
             <%= vStoreWithDemographics.SquareFeet %> 
            </SquareFeet> 
            <NumberEmployees> 
             <%= vStoreWithDemographics.NumberEmployees %> 
            </NumberEmployees> 
           </store> 
        %> 
       </stores> 
    stores.Save("c:\stores.xml") 
    Process.Start("c:\stores.xml") 
End Sub 

End Module

Dennoch habe ich versucht, das zu wiederholen Gleiches in einem neuen Projekt basierend auf einer Windows Forms App und ich bekomme Fehler in den letzten 2 Aussagen (beide sagen nur "Erklärung erwartet"; auch Hinweis: Ich verglich die Referenzen für die Konsole App mit denen für die Winforms standardmäßig zur Verfügung gestellt App und hinzugefügt System.Data.Linq dann den Fehler gegeben, ich habe 2 Imports-Anweisungen, aber ich bekomme immer noch die Fehler).

Imports System.Diagnostics 
Imports System.Xml.Linq.XDocument 
Public Class Form1 
Dim db As New AdventureWorksDataContext 
Dim stores = <?xml version="1.0"?> 
      <stores> 
       <%= From vStoreWithDemographics In db.vStoreWithDemographics _ 
        Select <store> 
           <ID> 
            <%= vStoreWithDemographics.BusinessEntityID %> 
           </ID> 
           <Name> 
            <%= vStoreWithDemographics.Name %> 
           </Name> 
           <AnnualSales> 
            <%= vStoreWithDemographics.AnnualSales %> 
           </AnnualSales> 
           <BankName> 
            <%= vStoreWithDemographics.BankName %> 
           </BankName> 
           <SquareFeet> 
            <%= vStoreWithDemographics.SquareFeet %> 
           </SquareFeet> 
           <NumberEmployees> 
            <%= vStoreWithDemographics.NumberEmployees %> 
           </NumberEmployees> 
          </store> 
       %> 
      </stores> 
    stores.Save("c:\stores.xml")     'error here 
    Process.Start("c:\stores.xml")     'error here 
End Class 

Bitte sagen Sie mir, was ich vermisse. Vielen Dank.

Antwort

1

Ihr zweiter Codeblock befindet sich nicht in einer Methode. Es muss innerhalb eines Sub oder Function sein:

Public Class Form1 
     Public Sub SomeFoo() 
      Dim db As New AdventureWorksDataContext 
      Dim stores = <?xml version="1.0"?> 
          <stores> 
           <%= From vStoreWithDemographics In db.vStoreWithDemographics _ 
            Select <store> 
                <ID> 
                 <%= vStoreWithDemographics.BusinessEntityID %> 
                </ID> 
                <Name> 
                 <%= vStoreWithDemographics.Name %> 
                </Name> 
                <AnnualSales> 
                 <%= vStoreWithDemographics.AnnualSales %> 
                </AnnualSales> 
                <BankName> 
                 <%= vStoreWithDemographics.BankName %> 
                </BankName> 
                <SquareFeet> 
                 <%= vStoreWithDemographics.SquareFeet %> 
                </SquareFeet> 
                <NumberEmployees> 
                 <%= vStoreWithDemographics.NumberEmployees %> 
                </NumberEmployees> 
               </store> 
           %> 
          </stores> 
      stores.Save("c:\stores.xml") 
      Process.Start("c:\stores.xml") 
     End Sub 
End Class 

Und dann irgendwann in der Anwendung etwas wird SomeFoo nennen.