PaCo немного не понял что это даст Я решил сделать так: Объявить интерфейс с методами A B C который реализуют ClassA, и создать абстрактный класс для прокси который хранит ссылку на объект типа ClassA и также реализует этот интерфейс. Ну а там дальше "конкретные" прокси будут реализовывать нужную фунциональность и переадресовывать запросы к "настоящему" объекту. Ну а в самом коде объявлять уже не конкретно как класс, а как интерфейс. То бишь: PHP: IClassA obj; #if LOG obj = new Logger(); #elif MutliThread obj = new ThreadSabe(); #else obj = new ClassA(); #endif Сама комбинация прокси будет добавлять простым созданием классов. PS почему это я сразу не додумался использовать интерфейс
Есть уверенность что это вообще там необходимо? В таком подходе видятся черты большого количества антипатернов + может вызвать чувство когнитивного хаоса у стороннего человека(да и у самого разраб..дчика через время).
Крашится программа при запуске на WinXP SP3 .net 4.0 "Обнаружена ошибка. Приложение будет закрыто". Программа написана под .net 2.0 Участок кода: MessageBox.Show("1"); - показывает. MessageBox.Show("2"); - уже нет. На win7 всё нормально. В чём может быть дело?
System.Windows.Forms.MessageBox.Show("1"); InitializeComponent(); } ..... private void InitializeComponent() { System.Windows.Forms.MessageBox.Show("2"); ... } InitializeComponent?!?!?!?!! логично будет падать, найди этот метод в Design.cs. Его вообще переопределять и перекрывать нельзя.
C# работа с MySQL PHP: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Windows.Forms; namespace Expl { public class Mysql { public static void Connect(string Host, string Port, string Username, string Password, string Database) { MySqlLib.MySqlData.MySqlExecuteData.MyResultData result = new MySqlLib.MySqlData.MySqlExecuteData.MyResultData(); string param = "Database=" + Database + ";Data Source=" + Host + ";User Id=" + Username + ";Password=" + Password + ";port=" + Port; result = MySqlLib.MySqlData.MySqlExecuteData.SqlReturnDataset("select * from google", param); if (result.HasError == false) { MessageBox.Show(result.ResultData.Rows.Count.ToString()); } else { MessageBox.Show(result.ErrorText); } } } } Собственно данный код выводит кол-во полученных данных. Вопрос: Как мне сделать на сишарпе что-то похожее на: PHP: if (mysql_num_rows($query)) { while($row= mysql_fetch_array($query)) { echo $row['name']; } }
MySqlDataReader, должно быть что-то вроде такого, т.е. производный от класса DbDataReader. http://www.devart.com/dotconnect/mysql/docs/Devart.Data.MySql~Devart.Data.MySql.MySqlDataReader.html А вот и он +)
Code: public Byte[] AddMultiPartFile(string filename, string filetype, Byte[] fileContent, string boundary) { string outputStr == "--" + boundary + "\r\n"; output += "Content-Disposition: form-data; name=\"file\"; filename=\"" + filename + "\"\r\n"; output += "Content-Type: " + filetype + "\r\n\r\n"; Byte[] output = Encoding.Default.GetBytes(outputStr); [COLOR=DarkGreen][B]//Здесь нужно к масиву байт output прицепить еще входные байты файла, как реазизовать? //Функция должна вернуть почти готовые данные для multipart/form-data[/B][/COLOR] } Если есть другие советы по реализации, прошу в студию - спасибо.
Приветствую. Пытаюсь передать POST запрос на сервер, запрос отправляется, но вот никак не пойму как получить результирующую(вернувшуюся в ответ) страницу. c#: Code: WebClient qwe = new WebClient(); NameValueCollection data = new NameValueCollection(); data.Add("login", "***"); data.Add("password", "***"); qwe.UploadValuesAsync(new Uri("http://***"), "POST", data); qwe.UploadValues делает это(возвращает страницу) замечательно, но вот с асинхронностью будет лучше выглядеть все это. Смотрел qwe.UploadProgressChanged и qwe.UploadValuesCompleted, но не нашёл в них ничего нужного. Очень удивило, что в Completed только возвращение ошибки... как же получить страницу?
ппц Я днём все перерыл. Ну не было у UploadValuesCompletedEventArgs варианта Result... У UploadFileCompletedEventArgs был, у этого не было... Сейчас попробовал... есть... мистика прям... о_0 спрашивается, где я тогда смотрел? ну ладно Спасибо большое
Доброго времени суток. Подскажите аналог c#'овского backgroundworker'а на Java Т.е. При выполнении нажатия на кнопку форма на некоторое время виснет, а пользователю необходимо в это время с ней работать. Как решается эта проблема? Использую jFrame.
Переформулирую вопрос. Как сложить два массива байт? То есть не каждый элемент первого массива с каждым элементом второго массива соответственно, а добавить второй массив в конец? Например есть массив a[] и b[]. a[] равен: 010101 b[] равен: 1111 Результат должен быть такой: 0101011111. Имею ввиду, стандартные средства или методы. С помощью цикла и я сам могу.
у класса Array есть методы Copy: http://msdn.microsoft.com/ru-ru/library/k4yx47a1.aspx и CopyTo: http://msdn.microsoft.com/ru-ru/library/06x742cw.aspx то, что тебе нужно