- 1
- 2
- 3
- 4
protected override Type GetEntryType()
{
return typeof(ReportEntry);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+141
protected override Type GetEntryType()
{
return typeof(ReportEntry);
}
Код из реального проекта
, что в данном случае равносильно библиотечному вызову GetType()
Вот в первом шарпе не было женериков, например.
P.S. Кстати как там у монодевелопа сейчас со стабильностью? В прошлый раз, когда я его поставил, и хотел немного позаниматься шарпом, он крашился в рандомные моменты. После этого я во второй (и наверное последний) раз в жизни забил на шарп и его изучение.
JVM надежная, проверенная временем и довольно быстрая . А шарп - это кроссплафторменность только в рамках вендоплатформы и хорошая работа в связке мс-продуктами.
> забил на шарп и его изучение
Правильно, надо прислушиваться к дяде Столлману. Он хуйни не посоветует.
Thus, the Java language as such is no longer a trap.
А посему отныне пользоваться жабой позволяется не только трапам.
Жду цитаты где он лучшего мнения о C#, то бишь рекомендует писать на нем незашкваренным кодерам.
Не можешь в цитату - я помогу тебе:
http://www.fsf.org/news/dont-depend-on-mono
The problem is not unique to Mono; any free implementation of C# would raise the same issue. The danger is that Microsoft is probably planning to force all free C# implementations underground some day using software patents. This is a serious danger, and only fools would ignore it until the day it actually happens. We need to take precautions now to protect ourselves from this future danger.
This is not to say that implementing C# is a bad thing. Free C# implementations permit users to run their C# programs on free platforms, which is good. Ideally we want to provide free implementations for all languages that programmers have used.
The problem is not in the C# implementations. If we lose the use of C#, we will lose them too. That doesn't make them unethical, but it means that writing them and using them is taking a gratuitous risk.
We should systematically arrange to depend on the free C# implementations as little as possible. In other words, we should discourage people from writing programs in C#.
ну просто не надо было от кроссплатформености плясать, а юзать его под родные виндозные фреймворки
ReportEntry в частном случае это и есть TEntry
И в дочерних не надо ничего доделывать по этому моменту.
XmlSerializer serializer = new XmlSerializer(GetModelType());
....
var objData = serializer.Deserialize(stream);
Где GetModelType() - метод, аналогичный приведенному. Т.е. у меня в базовом классе тип для десериализации объекта определяется конкретным потомком.
Если кто подскажет, как сделать проще - буду благодарен.
Здесь A - базовый класс, B - та самая модель, тип которой нам хочется знать внутри А, чтобы вызвать для нее десериализатор. Или там GetModelType() не всегда возвращает свой собственный тип?
P.S. С C# у меня плоховато, если ошибся - не ругайте ;)
А у тебя есть этот объект - this. Видимо, отношение примерно как я и подумал: ModelMapper.GetModelType() == typeof(Model). К примеру, хотим десериализовать объект Model, которого, разумеется, ещё нет. По этому, в частности, модели по соглашению имеют дефолтные конструкторы, чтобы можно было сконструировать без параметров и десериализовать, хоть частенько это нарушает инкапсуляцию.
looks legit imho