Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Открыть новую тему     Написать ответ в эту тему

Vlimiik



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DenSyo
В таком случае мне нужно пакет файлов, содержащих данные взаимодействующие с сервером, перенести в другую учетную запись пользователя на этом же ПК, другими словами - скопировать. Думаю, сессии не могут быть привязаны к конкретной учетной записи и браузер, используемый другим пользователем, с теми же файлами в случае если они органично окажутся включены, имел бы успешную авторизацию.
 
Не уверен в адекватности реакции Edge на эту процедуру , браузер пока считаю не до конца предсказуемым.

Всего записей: 560 | Зарегистр. 11-08-2007 | Отправлено: 04:14 25-03-2023
maksnik777

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот это никак не решено, мне это интересно




Флудить прекращаем.

Всего записей: 5 | Зарегистр. 28-03-2023 | Отправлено: 10:47 28-03-2023
ProfIR

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос про C#. Есть несколько Классов. Не могу связать объекты одного класса с другим.
Причем в редакторе нет ошибок, а при запуске на последней строке ошибка:  нет ссылки на объект.
Подскажите как исправить?

 
public partial class Form1 : Form
    {
        [System.SerializableAttribute()]
        [System.Diagnostics.DebuggerStepThroughAttribute()]
        [System.ComponentModel.DesignerCategoryAttribute("code")]
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
        public partial class Document
        {
            private object[] dataField;
 
 
            [System.Xml.Serialization.XmlArrayItemAttribute("Subject_FL", typeof(DocumentSubject_FL), IsNullable = false)]
            public object[] Data
            {
                get
                {
                    return this.dataField;
                }
                set
                {
                    this.dataField = value;
                }
            }
        }
 
        [System.SerializableAttribute()]
        [System.Diagnostics.DebuggerStepThroughAttribute()]
        [System.ComponentModel.DesignerCategoryAttribute("code")]
        [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
        public partial class DocumentSubject_FL
        {
            //private SubjectTitleDataFL titleField;
            //public SubjectTitleDataFL Title
            //{
            //    get
            //    {
            //        return this.titleField;
            //    }
            //    set
            //    {
            //        this.titleField = value;
            //    }
            //}
        }
         
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Document doc = new Document();
            DocumentSubject_FL docsubj = new DocumentSubject_FL();
            doc.Data[0] = docsubj;
             
        }
    }

Всего записей: 3 | Зарегистр. 07-08-2008 | Отправлено: 10:38 19-04-2024
RemComm



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Это ожидаемая ошибка. В последней строке вы хотите присвоить значение элементу массива с индексом 0 в то время как сам массив неинициализирован. Фактически, последняя строка делает следующее: вернуть ссылку на массив object[] из значения приватного поля Document.dataField и по возвращенной ссылке присвоить значение элементу массива с индексом 0. Свойство doc.Data возвращает null и вы ловите NRE в рантайме. В IDE вы эту ошибку не отловите. Так же она не ловится в compile-time. Такие ошибки ловятся статическими анализаторами.
 
Чтоб избавиться от ошибки, последюю строку заменить на (например):
 
doc.Data = new object[5] // массив на 5 элементов или сколько вам надо.
doc.Data[0] = docsubj; // теперь NRE нет;
 
или инициализировать поле dataField в конструкторе класса Document. Или следать инициализацию при объявлении. В общем, поле надо как-то инициализировать. При объявлении без инициализации, переменные классов имеют null.
 
В целом не очень понятна задумка. Создается впечатление, что вы хотели сделать индексируемое свойство Document.Data но у вас получилось обычное.

Всего записей: 840 | Зарегистр. 30-09-2003 | Отправлено: 01:39 21-04-2024 | Исправлено: RemComm, 01:48 21-04-2024
MBK2

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Или передавайте docsubj параметром в конструктор и там инициализируйте Document.Data.

Всего записей: 5348 | Зарегистр. 18-09-2018 | Отправлено: 03:08 21-04-2024
4seasons



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сегодня обнаружил, что помощь по F1 не работает как раньше, при нажатии на F1 происходит не открытие страницы помощи  в браузере, а открывается новая вкладка в студии  с какой хренью.

При нажатии Ctrl+F1 происходит тоже, что и принажатии на F1.
Естественный вопрос: как теперь получать справку в студии?

Всего записей: 6023 | Зарегистр. 31-05-2009 | Отправлено: 11:22 01-05-2024 | Исправлено: 4seasons, 12:04 01-05-2024
V0lt



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть приложение использующее WinForms и .NET Framework 4.7.2.
Не работает поддержка длинных путей в OpenFileDialog. Я могу зайти через диалог в папку с длинным путем, выбрать файлы, но при нажатии кнопки "Открыть" ничего не происходит.
В интернете и документации советуют прописать в App.config следующие строки:

Код:
<runtime>
  <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false;Switch.System.IO.BlockLongPaths=false" />
</runtime>

Но у меня ничего не изменилось.
 
Есть рабочее решение поддержки длинных путей?
 
Добавлено:
PS: Поддержка длинных путей в Windows 10 включена и работает для других приложений.

Всего записей: 11130 | Зарегистр. 05-02-2003 | Отправлено: 10:51 05-07-2025 | Исправлено: V0lt, 11:20 05-07-2025
MBK2

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
V0lt

Цитата:
при нажатии кнопки "Открыть" ничего не происходит.

А что, собственно, должно произойти по нажатию кнопки "Открыть"? И как код вызова диалога у вас выглядит?

Всего записей: 5348 | Зарегистр. 18-09-2018 | Отправлено: 12:49 05-07-2025
V0lt



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MBK2

Цитата:
А что, собственно, должно произойти по нажатию кнопки "Открыть"?

Закрытие диалогового окна с запоминанием выбранных файлов в FileNames.
Для обычного пути именно так и происходит.

Цитата:
И как код вызова диалога у вас выглядит?


Код:
private void buttonAdd_Click(object sender, EventArgs e)
{
    OpenFileDialog openFileDialog = new OpenFileDialog();
    openFileDialog.Filter = "Файлы PDF (*.pdf)|*.pdf";
    openFileDialog.FilterIndex = 1;
    openFileDialog.RestoreDirectory = true;
    openFileDialog.Multiselect = true;
 
    if (openFileDialog.ShowDialog() == DialogResult.OK)
    {
        foreach (string file in openFileDialog.FileNames)
        {
            if (Path.GetExtension(file).ToLower() == ".pdf")
            {
                listView1.Items.Add(file);
            }
        }
    }
}

Всего записей: 11130 | Зарегистр. 05-02-2003 | Отправлено: 13:16 05-07-2025 | Исправлено: V0lt, 17:32 05-07-2025
MBK2

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Гмм, а если Multiselect убрать? Или FilterIndex (не пойму, зачем он вообще)?
А какой анамнез - диалог не закрывается по нажатию кнопки открыть или список пустой возвращает?
Может, с фильтром чтото не так,
вот тут
эту тему обсуждали.

Всего записей: 5348 | Зарегистр. 18-09-2018 | Отправлено: 15:02 05-07-2025
V0lt



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MBK2

Цитата:
Гмм, а если Multiselect убрать? Или FilterIndex (не пойму, зачем он вообще)?  

Причем здесь все это? Я же выше написал, что диалог нормально работает с обычными путями.

Цитата:
вот тут эту тему обсуждали.

Там нет ничего про длинные пути.
 
PS: Длинный путь к папке примерно такой

Код:
D:\1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890\

Тут 306 символов, что больше старого лимита в 260 символов.

Всего записей: 11130 | Зарегистр. 05-02-2003 | Отправлено: 17:35 05-07-2025 | Исправлено: V0lt, 17:37 05-07-2025
MBK2

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
V0lt

Цитата:
Я же выше написал, что диалог нормально работает с обычными путями

Да, теперь понял.
И все таки

Цитата:
А какой анамнез - диалог не закрывается по нажатию кнопки открыть или список пустой возвращает?


Всего записей: 5348 | Зарегистр. 18-09-2018 | Отправлено: 19:35 05-07-2025
V0lt



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MBK2
Не закрывается.

Всего записей: 11130 | Зарегистр. 05-02-2003 | Отправлено: 20:02 05-07-2025
MBK2

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
V0lt
А если так?  
https://stackoverflow.com/questions/58730446/openfiledialog-returns-empty-string-on-paths-over-260-characters-or-doesnt-ret

Всего записей: 5348 | Зарегистр. 18-09-2018 | Отправлено: 21:49 05-07-2025
V0lt



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MBK2
Спасибо.
 
Задание ValidateNames = false дает возможность закрыть диалог. Но обращение к FileName и FileNames кидает исключение. В этом случае получить пути можно с помощью такого кода.

Код:
var fileNamesProperty = dialog.GetType().GetProperty("FileNamesInternal", BindingFlags.NonPublic | BindingFlags.Instance);
var fileNamesFromProperty = (string[])fileNamesProperty?.GetValue(dialog);

Пути получаются с префиксом "\\?\", но этим можно жить. Дальше возникает точно такая же проблема с диалогом сохранения. Его также надо "хакать".
 
Еще ListView обрезает длинные строки, что нехорошо, т.к. не видно имени файла. Надо будет поискать решение переделать на DataGridView.

Всего записей: 11130 | Зарегистр. 05-02-2003 | Отправлено: 07:33 06-07-2025 | Исправлено: V0lt, 07:45 06-07-2025
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru