to post messages and comments.

← All posts tagged mono

Охуеть! О-ху-еть! Работает! Не прошло и двух дней в соитии с кривыми библиотеками и сраным ксамарином, как все заработало.

P.S. Есличо, то AlchemyWebSockets какое-то говно, а SuperWebSockets чото не работает на моно. XSockets — заебись.

Аксиома раз: нет JIT, только AOT. (Платформа виновата)
Аксиома два: нельзя использовать Emit (Джобс пидарас).

Как бы мне в рантайме заинжектить код во все методы? Так, что бы можно было например при вызове любого метода вывести в консоль "Метод METHOD_NAME вызван".

P.S. Ответы, противоречащие первым двум аксиомам так же принимаются.

Заранее спасибо.

P.P.S.
Как это сделать после компиляции я знаю (всякие Mono.Cecil и проч.), проблема в том, что мы не можем пока вклиниться в цикл сборки — Xamarin ХУЕВО генерирует мейк-файлы(не получается через них собирать), а вклиниться в нужный момент сборки в IDE нельзя — там либо prebuild, либо postbuild.

https://github.com/mono/sysdrawing-coregraphics/blob/578a9869133e440e162b57611b40efe54b1b08b6/System.Drawing/Image.cs
Строки 61-62, 86-88 -- какое-то очень сильное колдунство.
public int Height {
			get {
				var b = this as Bitmap;
61				return b == null ? 0 : b.NativeCGImage.Height;
62				return 0;
			}
		}

public int Width {
			get {
				var b = this as Bitmap;
86				return b == null ? 0 : b.NativeCGImage.Width;
87
88				return 0;
			}
		}