Динамическое Преобразование Типа - PullRequest
1 голос
/ 15 июля 2009

У меня есть следующий метод

public static void SerializeToXMLFile(Object obj,Type type, string fileName)
{
    XmlSerializerNamespaces ns = new XmlSerializerNamespaces();

    ns.Add("", "");

    XmlSerializer serializer = new XmlSerializer(type);
    TextWriter tw = new StreamWriter(fileName);

    serializer.Serialize(tw, obj, ns);
    tw.Close();
}

Проблема в том, что в строке кода указано, что объект obj будет сериализован как объект.

сериализатор. Сериализация (tw, obj, ns);

То, что я бы предпочел, это то, что он указан как соответствующий ему тип, например:

serializer.Serialize (tw, (type) obj, ns);

Как это сделать? Чтобы преобразование типов работало из динамической переменной?

1 Ответ

2 голосов
/ 15 июля 2009

Нет, он будет сериализован как соответствующий тип.

Метод Serialize имеет тип параметра object, поэтому даже если вы могли бы сделать это приведение, это не принесло бы пользы. Это не так, как универсальный метод, который может использовать тип времени компиляции.

Если вы считаете, что соответствующие данные не сохраняются, опубликуйте короткий, но полный пример, чтобы показать это. Должно работать нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...