xml settings files into C# plugin
I try to convert a VB.net class into a C# class but i have an error !
VB.NET class:
Code:
Option Strict Off
Option Explicit On
Imports System.IO
Imports System.Xml
Imports System.Xml.Serialization
Imports System.Text
Public Class cMySettings
Public FTPUsername As String
Public FTPPassword As String
Public FTPHostname As String
Public FTPHostpath As String
Public FTPDirectorypath As String
Private Shared XMLFilename As String
Public Sub New()
SetToDefault(Me)
End Sub
Public Sub New(FileName As String)
XMLFilename = FileName
If Path.GetExtension(XMLFilename).ToLower() <> "xml" Then XMLFilename = XMLFilename + ".xml"
If File.Exists(XMLFilename) = False Then SerializeToXML(New cMySettings())
End Sub
Public Sub New(ByRef Settings As cMySettings)
Me.FTPUsername = Settings.FTPUsername
Me.FTPPassword = Settings.FTPPassword
Me.FTPHostname = Settings.FTPHostname
Me.FTPHostpath = Settings.FTPHostpath
Me.FTPDirectorypath = Settings.FTPDirectorypath
End Sub
Public Shared Sub SerializeToXML(ByRef Settings As cMySettings)
Dim xmlSerializer As New XmlSerializer(GetType(cMySettings))
Using xmlTextWriter As New XmlTextWriter(XMLFilename, Encoding.UTF8)
xmlTextWriter.Formatting = Formatting.Indented
xmlSerializer.Serialize(xmlTextWriter, Settings)
xmlTextWriter.Close()
End Using
End Sub
Public Shared Sub DeseralizeFromXML(ByRef Settings As cMySettings)
Dim fs As FileStream = Nothing
' do i have settings?
If File.Exists(XMLFilename) = True Then
Try
fs = New FileStream(XMLFilename, FileMode.Open, FileAccess.Read)
Dim xmlSerializer As New XmlSerializer(GetType(cMySettings))
Settings = xmlSerializer.Deserialize(fs)
Catch
'load error of some sort, or OBJECT deserialize error
'do we tell anyone?
Exit Sub
Finally
If Not fs Is Nothing Then fs.Close()
fs = Nothing
End Try
End If
End Sub
Public Shared Sub Copy(ByRef SourceSettings As cMySettings, ByRef DestSettings As cMySettings)
DestSettings.FTPUsername = SourceSettings.FTPUsername
DestSettings.FTPPassword = SourceSettings.FTPPassword
DestSettings.FTPHostname = SourceSettings.FTPHostname
DestSettings.FTPHostpath = SourceSettings.FTPHostpath
DestSettings.FTPDirectorypath = SourceSettings.FTPDirectorypath
End Sub
Public Shared Sub SetToDefault(ByRef Settings)
Settings.FTPUsername = "FTPUsername"
Settings.FTPPassword = "FTPPassword"
Settings.FTPHostname = "FTPHostname"
Settings.FTPHostpath = "Disque dur/Enregistrements/"
Settings.FTPDirectorypath = "C:\temp\FTPCopy\"
End Sub
Public Shared Function Compare(ByRef Settings1 As cMySettings, ByRef Setting2 As cMySettings) As Boolean
If Settings1.FTPUsername <> Setting2.FTPUsername Then Compare = False : Exit Function
If Settings1.FTPPassword <> Setting2.FTPPassword Then Compare = False : Exit Function
If Settings1.FTPHostname <> Setting2.FTPHostname Then Compare = False : Exit Function
If Settings1.FTPHostpath <> Setting2.FTPHostpath Then Compare = False : Exit Function
If Settings1.FTPDirectorypath <> Setting2.FTPDirectorypath Then Compare = False : Exit Function
Compare = True
End Function
End Class
C# class converted:
Code:
using System.IO;
using System.Xml;
using System.Xml.Serialization;
using System.Text;
public class cMySettings
{
public string FTPUsername;
public string FTPPassword;
public string FTPHostname;
public string FTPHostpath;
public string FTPDirectorypath;
private static string XMLFilename;
public cMySettings()
{
SetToDefault(ref this);
}
public cMySettings(string FileName)
{
XMLFilename = FileName;
if (Path.GetExtension(XMLFilename).ToLower() != "xml")
XMLFilename = XMLFilename + ".xml";
if (File.Exists(XMLFilename) == false)
SerializeToXML(ref new cMySettings());
}
public cMySettings(ref cMySettings Settings)
{
this.FTPUsername = Settings.FTPUsername;
this.FTPPassword = Settings.FTPPassword;
this.FTPHostname = Settings.FTPHostname;
this.FTPHostpath = Settings.FTPHostpath;
this.FTPDirectorypath = Settings.FTPDirectorypath;
}
public static void SerializeToXML(ref cMySettings Settings)
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(cMySettings));
using (XmlTextWriter xmlTextWriter = new XmlTextWriter(XMLFilename, Encoding.UTF8)) {
xmlTextWriter.Formatting = Formatting.Indented;
xmlSerializer.Serialize(xmlTextWriter, Settings);
xmlTextWriter.Close();
}
}
public static void DeseralizeFromXML(ref cMySettings Settings)
{
FileStream fs = null;
// do i have settings?
if (File.Exists(XMLFilename) == true) {
try {
fs = new FileStream(XMLFilename, FileMode.Open, FileAccess.Read);
XmlSerializer xmlSerializer = new XmlSerializer(typeof(cMySettings));
Settings = xmlSerializer.Deserialize(fs);
} catch {
//load error of some sort, or OBJECT deserialize error
//do we tell anyone?
return;
} finally {
if ((fs != null))
fs.Close();
fs = null;
}
}
}
public static void Copy(ref cMySettings SourceSettings, ref cMySettings DestSettings)
{
DestSettings.FTPUsername = SourceSettings.FTPUsername;
DestSettings.FTPPassword = SourceSettings.FTPPassword;
DestSettings.FTPHostname = SourceSettings.FTPHostname;
DestSettings.FTPHostpath = SourceSettings.FTPHostpath;
DestSettings.FTPDirectorypath = SourceSettings.FTPDirectorypath;
}
public static void SetToDefault(ref Settings)
{
Settings.FTPUsername = "FTPUsername";
Settings.FTPPassword = "FTPPassword";
Settings.FTPHostname = "FTPHostname";
Settings.FTPHostpath = "Disque dur/Enregistrements/";
Settings.FTPDirectorypath = "C:\\temp\\FTPCopy\\";
}
public static bool Compare(ref cMySettings Settings1, ref cMySettings Setting2)
{
bool functionReturnValue = false;
if (Settings1.FTPUsername != Setting2.FTPUsername){functionReturnValue = false;return functionReturnValue;}
if (Settings1.FTPPassword != Setting2.FTPPassword){functionReturnValue = false;return functionReturnValue;}
if (Settings1.FTPHostname != Setting2.FTPHostname){functionReturnValue = false;return functionReturnValue;}
if (Settings1.FTPHostpath != Setting2.FTPHostpath){functionReturnValue = false;return functionReturnValue;}
if (Settings1.FTPDirectorypath != Setting2.FTPDirectorypath){functionReturnValue = false;return functionReturnValue;}
functionReturnValue = true;
return functionReturnValue;
}
}
The SetToDefault function return me an error !
Where is my error please !
Thanks