Моя проблема в том, что у меня есть этот класс:
[SerializableAttribute]
[SoapInclude(typeof(PairColumnValue))]
[XmlInclude(typeof(PairColumnValue))]
public class PairColumnValue:IPairColumnValue
{
public string ColumnName
{
get { return data.Element("ColumnName").Value; }
}
public string Value
{
get { return data.Element("Value").Value; }
}
private XElement data;
public PairColumnValue()
{
data = new XElement("Data", new XElement("ColumnName", ""), new XElement(("Value"), ""));
}
public PairColumnValue(string columnName, string value)
{
data = new XElement("Data", new XElement("ColumnName", columnName), new XElement(("Value"), value));
}
}
Этот класс используется в WebService, и когда я добавляю ссылку на службу, сгенерированная ссылка на класс (Reference.cs) выглядит так:
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.4927")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://tempuri.org/")]
public partial class PairColumnValue {
}
У него нет поля, и я не могу его использовать, почему? И что еще более важно, что я должен сделать, чтобы получить класс с полями, которые я хочу использовать?
PD: чтобы использовать WebReference, я делаю следующее:
[Test]
public void InsertThroughService()
{
ServiceReference.PairColumnValue[] toInsert = new ServiceReference.PairColumnValue[2];
toInsert[0] = new PruebasUnitarias.ServiceReference.PairColumnValue("login", "testservice");
toInsert[1] = new ServiceReference.PairColumnValue("password", "testservice");
ServiceReference.PersistenceServicev2 client = new PersistenceServicev2();
XmlSerializer serializer = new XmlSerializer(typeof(PairColumnValue));
client.InsertData("usuario", toInsert);
}
И, конечно, в конструкторах написано "Ошибка, класс не содержит конструктора с 2 аргументами.
Помощь! И спасибо, конечно!