Следующие коды работают как есть, но я хотел бы использовать ссылку на класс MyProperty, который должен быть передан в конструкторе вместо строго типизированных ссылок во встроенном коде.C# передать класс аргументу конструктору
Как это сделать, я должна пройти реф в MyProperty, но все, что я пытался не удается
Я хотел PropertyClass, чтобы быть в состоянии обрабатывать любые классы MyProperty т.е. не ссылки на MyProperty в PropertyClass
Все еще учиться так жаль, если я пропустил очевидное!
Большое спасибо за любую помощь
Сара
PropertyClass pc = new PropertyClass(!here!); // Would like to pass MyProperty class here
pc.Settings.Add(new MyProperty("Fred", "Monday"));
pc.SaveXml("MyTest.xml");
public class MyProperty
{
[XmlAttribute]
public string MyPropName { get; set; }
[XmlElement]
public string MyPropData { get; set; }
// default constructor needs to be parameterless for serialisation.
public MyProperty()
{
}
public MyProperty(string Name, string Data)
{
MyPropName = Name;
MyPropData = Data;
}
}
public class PropertyClass
{
public List<MyProperty> Settings { get; set; }
public PropertyClass() // How to pass the required class here ?
{ // public PropertyClass(ref MyProperty myprop)
Settings = new List<MyProperty>();
}
public void SaveXml(string fileName)
{
using (FileStream stream = new FileStream(fileName, FileMode.Create))
{
XmlSerializer XML = new XmlSerializer(typeof(List<MyProperty>), new XmlRootAttribute("Settings"));
XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
namespaces.Add(string.Empty, string.Empty);
XML.Serialize(stream, Settings, namespaces);
}
}
}
Вы пытаетесь передать только тип объекта, который вы хотите хранить в экземпляр «PropertyClass»? Вы пробовали использовать дженерики? Или вопрос о проблемах сериализации с дженериками? –
Я думаю, что вы ищете [Generics] (https://msdn.microsoft.com/en-us/library/512aeb7t.aspx)? ... –
Привет Большое спасибо за ответ. Я надеялся, что который может обрабатывать любой класс стиля MyProperty, который передается ему. класс MyProperty может состоять из любого количества объектов, а сериализация поставляемого класса является основной частью. Короче говоря, я просто не хочу иметь PropertyClass для всех требований MyProperty, также мне нужно полностью понять, почему то, что я пытаюсь сделать, не работает !!! –