Что-то вроде этого должно работать на Вас:
delegate int MyDelegate(int a, int b);
public int Add(int a, int b) {
return a + b;
}
public void InvokeMethod(Delegate method, object[] param) {
Console.WriteLine(method.DynamicInvoke(param));
}
public Form1() {
InitializeComponent();
InvokeMethod(new MyDelegate(Add), new object[] { 1, 2 });
}
Удачи!
Это должно быть очень просто, если для Календаря Google не требуется *. Ics
-расширение (которое потребует некоторой перезаписи URL-адресов на сервере).
$ical = "BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
UID:" . md5(uniqid(mt_rand(), true)) . "@yourhost.test
DTSTAMP:" . gmdate('Ymd').'T'. gmdate('His') . "Z
DTSTART:19970714T170000Z
DTEND:19970715T035959Z
SUMMARY:Bastille Day Party
END:VEVENT
END:VCALENDAR";
//set correct content-type-header
header('Content-type: text/calendar; charset=utf-8');
header('Content-Disposition: inline; filename=calendar.ics');
echo $ical;
exit;
По сути, это все, что вам нужно, чтобы заставить клиента думать, что вы обслуживаете файл iCalendar, даже если могут возникнуть проблемы с кешированием, кодировкой текста и т. д. Но вы можете начать экспериментировать с этим простым кодом.
Редактировать: на самом деле я не уверен - строка 6186 дает пример в формате именования .ics, но также заявляет, что вы можете использовать параметры URL. Я не думаю, что это имеет значение, если тип MIME правильный.
Изменить: Пример из википедии: http://en.wikipedia.org/wiki/ICalendar
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
DTSTART:19970714T170000Z
DTEND:19970715T035959Z
SUMMARY:Bastille Day Party
END:VEVENT
END:VCALENDAR
Тип MIME настроен на сервер.