Найдено результатов: 30

Надежный таймер в консольном приложении

Я знаю, что в .NET есть три типа таймеров (см. сравнение классов таймеров в библиотеке классов фреймворка .NET ). Я выбрал потоковый таймер, поскольку другие типы могут дрейфовать, если основной поток занят, и мне нужно, чтобы это было надежно.

Способ работы этого таймера в управлении таймером помещается на другой поток, поэтому он всегда может тикать вместе с работой, начатой в Родительском потоке, когда он не занят.

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

Я попробовал добавить цикл while true , но тогда основной поток слишком занят, когда таймер действительно выключается.

c#   .net   vb.net   timer    

488   2   16:03, 1st July, 2020


Декодирование T-SQL приведено в C#/VB.NET

Недавно наш сайт был затоплен с возрождением asprox ботнет SQL инъекции атаки. Не вдаваясь в подробности, атака пытается выполнить код SQL, кодируя команды T-SQL в кодированной строке ASCII BINARY. Это выглядит примерно так:

DECLARE%20@S%20NVARCHAR(4000);SET%20@S=CAST(0x44004500...06F007200%20AS%20NVARCHAR(4000));EXEC(@S);--

Я смог расшифровать это в SQL, но я немного опасался делать это, так как я не знал точно, что происходило в то время.

Я попытался написать простой инструмент декодирования, чтобы я мог декодировать этот тип текста, даже не касаясь сервера SQL . Основная часть, которую мне нужно декодировать, - это:

CAST(0x44004500...06F007200 AS
NVARCHAR(4000))

Я пробовал все следующие команды без удачи:

txtDecodedText.Text =
    System.Web.HttpUtility.UrlDecode(txtURLText.Text);
txtDecodedText.Text =
    Encoding.ASCII.GetString(Encoding.ASCII.GetBytes(txtURLText.Text));
txtDecodedText.Text =
    Encoding.Unicode.GetString(Encoding.Unicode.GetBytes(txtURLText.Text));
txtDecodedText.Text =
    Encoding.ASCII.GetString(Encoding.Unicode.GetBytes(txtURLText.Text));
txtDecodedText.Text =
    Encoding.Unicode.GetString(Convert.FromBase64String(txtURLText.Text));

Как правильно перевести эту кодировку без использования SQL Server? Возможно ли это? Я возьму код VB.NET, так как я тоже знаком с этим.


Хорошо, я уверен, что я что-то упускаю, так что вот где я нахожусь.

Поскольку мой ввод является основной строкой, я начал с фрагмента закодированной части-4445434C41 (что переводится как DECLA) - и первая попытка была сделать это...

txtDecodedText.Text = Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(txtURL.Text));
...

и все, что он сделал, это вернул то же самое, что я вставил, так как он преобразовал каждый символ в байт.

Я понял, что мне нужно разобрать каждые два символа в байт вручную, так как я еще не знаю никаких методов, которые это сделают, поэтому теперь мой маленький декодер выглядит примерно так:

while (!boolIsDone)
{
    bytURLChar = byte.Parse(txtURLText.Text.Substring(intParseIndex, 2));
    bytURL[intURLIndex] = bytURLChar;
    intParseIndex += 2;
    intURLIndex++;

    if (txtURLText.Text.Length - intParseIndex < 2)
    {
        boolIsDone = true;
    }
}

txtDecodedText.Text = Encoding.UTF8.GetString(bytURL);

Все выглядит хорошо для первой пары пар, но затем цикл останавливается, когда он добирается до пары "4C" и говорит, что строка находится в неправильном формате.

Интересно, что когда я перехожу через отладчик и к методу GetString на массиве байтов, который я смог разобрать до этого момента, я получаю", - + " в результате.

Как мне выяснить, что мне не хватает - нужно ли мне делать "direct cast" для каждого байта вместо того, чтобы пытаться разобрать его?

c#   sql   vb.net   ascii   hex    

484   2   16:03, 1st July, 2020


CSV импорт файлов в .Net

Я понимаю, что это вопрос новичка, но я ищу простое решение - кажется, что оно должно быть.

Как лучше всего поместить файл import a CSV в строго типизированную структуру данных? Опять же просто = лучше.

c#   vb.net   file   csv   import    

529   12   16:03, 1st July, 2020


Установка объектов на Null/Nothing после использования in .NET

Следует ли вам установить все объекты в null (Nothing в VB.NET), как только вы закончите с ними?

Я понимаю, что в .NET необходимо избавиться от любых экземпляров объектов, реализующих интерфейс IDisposable , чтобы освободить некоторые ресурсы, хотя объект все еще может быть чем-то после его удаления (отсюда свойство isDisposed в формах), поэтому я предполагаю, что он все еще может находиться в памяти или, по крайней мере, частично?

Я также знаю, что когда объект выходит из области видимости, он помечается для сбора, готового к следующему проходу сборщика мусора (хотя это может занять некоторое время).

Таким образом, имея это в виду, будет ли установка его в null ускорить систему освобождения памяти, как это не должно работать, что он больше не находится в области и есть ли какие-либо плохие побочные эффекты?

MSDN статьи НИКОГДА не делают этого в примерах, и в настоящее время я делаю это так, как не могу видишь, какой вред. Однако я столкнулся со смешением мнений, поэтому любые комментарии полезны.

c#   .net   vb.net   memory-management   null    

527   14   16:03, 1st July, 2020


Каков наилучший способ обернуть время вокруг рабочего дня?

У меня есть ситуация, когда я хочу добавить часы к дате и иметь новую дату вокруг рабочего дня. Я придумал функцию, чтобы определить эту новую дату, но хочу убедиться, что я ничего не забыл.

Часы, чтобы быть добавлены называют "delay". Вместо этого он может легко быть параметром функции.

Пожалуйста, разместите любые предложения. [VB.NET предупреждение]

Private Function GetDateRequired() As Date
    ''// A decimal representation of the current hour
    Dim hours As Decimal = Decimal.Parse(Date.Now.Hour) + (Decimal.Parse(Date.Now.Minute) / 60.0) 

    Dim delay As Decimal = 3.0           ''// delay in hours
    Dim endOfDay As Decimal = 12.0 + 5.0 ''// end of day, in hours
    Dim startOfDay As Decimal = 8.0      ''// start of day, in hours

    Dim newHour As Integer
    Dim newMinute As Integer

    Dim dateRequired As Date = Now
    Dim delta As Decimal = hours + delay

    ''// Wrap around to the next day, if necessary
    If delta > endOfDay Then
        delta = delta - endOfDay
        dateRequired = dateRequired.AddDays(1)

        newHour = Integer.Parse(Decimal.Truncate(delta))
        newMinute = Integer.Parse(Decimal.Truncate((delta - newHour) * 60))
        newHour = startOfDay + newHour
    Else
        newHour = Integer.Parse(Decimal.Truncate(delta))
        newMinute = Integer.Parse(Decimal.Truncate((delta - newHour) * 60))
    End If

    dateRequired = New Date(dateRequired.Year, dateRequired.Month, dateRequired.Day, newHour, newMinute, 0)

    Return dateRequired
End Sub

Примечание: это, вероятно,не будет работать, если задержка составляет более 9 часов. Он никогда не должен меняться от 3, до конца.

EDIT: Цель состоит в том, чтобы найти дату и время, которые вы получите в результате добавления нескольких часов к текущему времени. Это используется для определения значения по умолчанию для даты выполнения отправки. Я хочу добавить 3 часа к текущему времени, чтобы получить срок выполнения. Однако я не хочу, чтобы сроки выполнения выходили за пределы 5 вечера в текущий день. Итак, я попытался разделить часы между (сегодня, до 5 вечера) и (завтра, с 8 утра), так что добавление 3 часов к 4 вечера даст вам 19 утра, потому что 1 час добавляется к концу сегодняшнего дня и 2 часа добавляются к началу завтрашнего дня.

vb.net   date    

481   3   16:03, 1st July, 2020


Автоматически увеличенный номер редакции не отображается в поле о программе

У меня есть небольшое приложение VB.NET, над которым я работаю, используя полную версию Visual Studio 2005. В свойствах публикации проекта у меня есть параметр автоматически увеличивать ревизию с каждой публикацией .

Проблема в том, что это только увеличивает ревизию в установочных файлах. Похоже, что он не обновляет номер версии в окне About (который является универсальным, встроенным шаблоном About Box). Этот номер версии, похоже, исходит от My.Application.Info.Version .

Что я должен использовать вместо этого, чтобы мой автоматически увеличивающийся номер редакции отображался в поле о программе?

vb.net   visual-studio    

469   5   20:16, 22nd August, 2020


Каковы наиболее важные функциональные различия между C# и VB.NET?

Конечно, есть разница в общем синтаксисе, но какие еще критические различия существуют? Есть же какие -то различия, верно?

c#   vb.net   comparison    

559   15   02:16, 23rd August, 2020


Как я могу удалить узлы из SiteMapNodeCollection?

У меня есть ретранслятор, который перечисляет все дочерние страницы web.sitemap на странице ASP.NET. Его DataSource - это SiteMapNodeCollection . Но я не хочу, чтобы моя страница регистрационной формы появилась там.

Dim Children As SiteMapNodeCollection = SiteMap.CurrentNode.ChildNodes

'remove registration page from collection
For Each n As SiteMapNode In SiteMap.CurrentNode.ChildNodes
If n.Url = "/Registration.aspx" Then
    Children.Remove(n)
End If
Next

RepeaterSubordinatePages.DataSource = Children

Метод SiteMapNodeCollection.Remove() выбрасывает a

NotSupportedException: "Collection is read-only".

Как я могу удалить узел из коллекции до DataBinding повторителя?

asp.net   .net   vb.net   repeater   sitemap    

465   3   08:33, 7th August, 2020


Загрузить XmlNodeList в XmlDocument без цикла?

Я изначально задал этот вопрос на RefactorMyCode, но там не получил ответа...

В принципе, я просто пытаюсь загрузить XmlNodeList в XmlDocument , и мне было интересно, есть ли более эффективный метод, чем цикл.

Private Function GetPreviousMonthsXml(ByVal months As Integer, ByVal startDate As Date, ByVal xDoc As XmlDocument, ByVal path As String, ByVal nodeName As String) As XmlDocument
    '' build xpath string with list of months to return
    Dim xp As New StringBuilder("//")
    xp.Append(nodeName)
    xp.Append("[")
    For i As Integer = 0 To (months - 1)
      '' get year and month portion of date for datestring
      xp.Append("starts-with(@Id, '")
      xp.Append(startDate.AddMonths(-i).ToString("yyyy-MM"))
      If i < (months - 1) Then
        xp.Append("') or ")
      Else
        xp.Append("')]")
      End If
    Next

    '' *** This is the block that needs to be refactored ***
    '' import nodelist into an xmldocument
    Dim xnl As XmlNodeList = xDoc.SelectNodes(xp.ToString())
    Dim returnXDoc As New XmlDocument(xDoc.NameTable)
    returnXDoc = xDoc.Clone()
    Dim nodeParents As XmlNodeList = returnXDoc.SelectNodes(path)
    For Each nodeParent As XmlNode In nodeParents
      For Each nodeToDelete As XmlNode In nodeParent.SelectNodes(nodeName)
        nodeParent.RemoveChild(nodeToDelete)
      Next
    Next

    For Each node As XmlNode In xnl
      Dim newNode As XmlNode = returnXDoc.ImportNode(node, True)
      returnXDoc.DocumentElement.SelectSingleNode("//" & node.ParentNode.Name & "[@Id='" & newNode.Attributes("Id").Value.Split("-")(0) & "']").AppendChild(newNode)
    Next

    '' *** end ***
    Return returnXDoc
End Function

xml   vb.net   xmldocument   xmlnode   xmlnodelist    

520   1   18:54, 16th August, 2020


Что делать Реф, знач и про параметры метода?

Я ищу ясный, лаконичный и точный ответ.

В идеале в качестве фактического ответа, хотя ссылки на хорошие объяснения приветствуются.

Это также относится к VB.Net, но ключевые слова разные- ByRef и ByVal .

c#   .net   vb.net    

480   4   20:35, 3rd August, 2020


Что делать Реф, знач и про параметры метода?

Я ищу ясный, лаконичный и точный ответ.

В идеале в качестве фактического ответа, хотя ссылки на хорошие объяснения приветствуются.

Это также относится к VB.Net, но ключевые слова разные- ByRef и ByVal .

c#   .net   vb.net    

461   4   07:05, 13th August, 2020


Как создать файл автоматической сборки для VB.Net в NAnt?

Я взял на себя разработку веб-приложения, ориентированного на платформу .net 1.0 и написанного на языках C# и Visual Basic.

Я решил, что первое, что нам нужно сделать, это уточнить процесс сборки, я написал файлы сборки для проектов C#, но у меня есть тонны проблем с созданием файла сборки для Visual Basic.

По общему признанию, я лично не знаю VB, но похоже, что мне нужно жестко закодировать все импортные и ссылочные файлы в моем файле сборки, чтобы получить что-либо до work...certainly не лучший способ делать вещи...

Например: если я не включу систему пространств имен в файл сборки, я получу несколько ошибок общих неизвестных типов, например: Guid

не NAnt, как правило, требуют этот код VB или является ли код VB нужен можно NAnt-содружественная рефакторинг?

У кого-нибудь есть советы VB NAnt?

vb.net   nant   .net-1.0    

487   4   18:51, 16th August, 2020


Вопрос интервью на тему C# и VB.net сходства/различия

Я уже несколько лет являюсь разработчиком VB.net, но в настоящее время я обращаюсь к нескольким компаниям, которые используют C#..мне даже сказали, что по крайней мере одна из компаний не хочет разработчиков VB.net.

Я искал в интернете, пытаясь найти реальные различия между этими двумя и спросил о crackoverflow. Единственное существенное различие - это несколько синтаксических различий, которые для меня тривиальны, потому что я также являюсь разработчиком Java.

Какой будет хороший ответ интервьюеру, когда он скажет мне, что ищет разработчика C# - или аналогичные вопросы?

c#   vb.net    

387   8   15:26, 9th August, 2020


Что это лучший способ, чтобы выполнить итерации через строго типизированный общего списка?

Как лучше всего перебирать строго типизированный универсальный список в C#.NET и VB.NET?

c#   .net   vb.net   generics   collections    

500   7   13:32, 27th August, 2020


Создать таблицу DB из таблицы набора данных

Можно ли (в Vb.Net 2005), не разбирая вручную свойства таблицы dataset, создать таблицу и добавить ее в базу данных?

У нас есть старые версии нашей программы На некоторых машинах, которые, очевидно, имеют нашу старую базу данных, и мы ищем способ определить, есть ли отсутствующая таблица, а затем создать таблицу на основе текущего состояния таблицы в наборе данных. Мы переписывали таблицу каждый раз, когда выпускали новую версию (если были добавлены новые столбцы), но мы хотели бы избежать этого шага, если это возможно.

database   vb.net   visual-studio-2005    

515   2   16:40, 11th August, 2020


Random целое число в VB.NET

Мне нужно сгенерировать целое число random между 1 и n (где n-положительное целое число), чтобы использовать его для юнит-теста. Мне не нужно что - то слишком сложное, чтобы гарантировать истинную случайность-просто старомодное число random.

Как бы я это сделал?

vb.net   random    

531   11   19:09, 20th August, 2020


Очистка текста RTF

Я хотел бы взять некоторые входные данные RTF и очистить их, чтобы удалить все форматирование RTF, кроме \ul \b \i, чтобы вставить его в Word с незначительной информацией о формате.

Команда, используемая для вставки в Word, будет выглядеть примерно так: oWord.ActiveDocument.ActiveWindow.Selection.PasteAndFormat(0) (с некоторым текстом RTF уже в буфере обмена)

{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Courier New;}}
{\colortbl ;\red255\green255\blue140;}
\viewkind4\uc1\pard\highlight1\lang3084\f0\fs18 The company is a global leader in responsible tourism and was \ul the first major hotel chain in North America\ulnone  to embrace environmental stewardship within its daily operations\highlight0\par

У вас есть какие-нибудь идеи о том, как я могу безопасно очистить RTF с помощью некоторых регулярных выражений или чего-то еще? Я использую VB.NET для выполнения обработки, но любой образец языка .NET подойдет.

.net   vb.net   ms-word   rtf    

489   4   16:34, 13th August, 2020


Страница общей коллекции без Linq

У меня есть объект типа System.Generic.Collections.List(Of MyCustomClass).

Учитывая целочисленные varaibles pagesize и pagenumber, как я могу собрать только одну страницу объектов MyCustomClass ?

Вот что у меня есть. Как я могу улучшить его?

'my given collection and paging parameters
Dim AllOfMyCustomClassObjects As System.Collections.Generic.List(Of MyCustomClass) = GIVEN
Dim pagesize As Integer = GIVEN
Dim pagenumber As Integer = GIVEN

'collect current page objects
Dim PageObjects As New System.Collections.Generic.List(Of MyCustomClass)
Dim objcount As Integer = 1
For Each obj As MyCustomClass In AllOfMyCustomClassObjects
If objcount > pagesize * (pagenumber - 1) And count <= pagesize * pagenumber Then
    PageObjects.Add(obj)
End If
objcount = objcount + 1
Next

'find total page count
Dim totalpages As Integer = CInt(Math.Floor(objcount / pagesize))
If objcount Mod pagesize > 0 Then
totalpages = totalpages + 1
End If

vb.net   collections   paging    

444   2   09:24, 19th August, 2020


Как использовать BITS для загрузки с пути UNC?

Как лучше всего распространять файлы пользователям в удаленных офисах, используя BITS с UNC путем или BITS с HTTP? У меня есть проект VB.NET, который в настоящее время загружается с пути HTTP, но есть дополнительная сложность (например, наличие веб-сервера).

Или есть лучший способ сделать это? Низкое использование полосы пропускания более важно, чем скорость синхронизации.

vb.net   bits    

427   1   09:37, 5th August, 2020


IntelliSense для объектов XElement со схемой XML

Читая статью под названием "Increase LINQ Query Performance" в июльском журнале MSDN, автор утверждает, что использование Imports в VB, предоставляющего путь к схеме в текущем проекте, включит IntelliSense для XElement. В предоставленном коде он использует операторы типа xelement.@name для восстановления значений атрибутов и так далее.

Я не пробовал это сам в VB, но я хотел бы использовать это в C#., это действительно похоже на LINQ до XSD.

Есть ли эквивалент в C#? кажется, что невозможно использовать пространство имен внутри кода C#, нет эквивалента using для этого оператора Import .

c#   linq   xsd   linq-to-xml   vb.net-to-c#    

471   1   09:46, 8th August, 2020


Зарезервированное Ключевое слово в перечислении в C#

Я хотел бы использовать as и is в качестве членов перечисления. Я знаю, что это возможно в VB.NET, чтобы написать его так:

Public Enum Test
    [as] = 1
    [is] = 2
End Enum

Как написать эквивалентный оператор в C#? Следующий код не компилируется:

public enum Test
{
    as = 1,
    is = 2
}

c#   vb.net   .net-2.0    

389   3   17:33, 21st August, 2020


Есть ли способ автоматизировать тестирование форм windows?

Я знаком с nunit для модульного тестирования бизнес-уровня, однако сейчас я ищу, чтобы автоматизировать тестирование уровня gui win forms.

Я видел watin и watin рекордер для автоматизации тестов в веб-приложении, получая доступ к элементам управления и автоматизируя их. Однако я изо всех сил пытаюсь найти эквивалент watin для windows форм (написанных в c# или vb.net), предпочтительно с открытым исходным кодом.

Существует ли один или все продукты основаны на записи нажатий мыши и клавиатуры?

Update: я посмотрел на этот пост в блоге на белом фоне, и мне кажется, что это именно то, что я ищу. Сообщение в блоге поднимает некоторые вопросы, но поскольку белый цвет есть только в версии 0.6, они могут быть решены. Будьте заинтересованы, если другие использовали белый цвет или любые другие для сравнения.

c#   .net   vb.net   winforms   automated-tests    

602   7   06:17, 18th August, 2020


Фильтрация тегов привязки в строке

Мне нужно отфильтровать якорные теги в строке. Например,

Check out this site: <a href="http://www.stackoverflow.com">stackoverflow</a>

Мне нужно иметь возможность отфильтровать тег привязки к этому:

Check out this site: http://www.stackoverflow.com

Этот формат также не может быть постоянным. У тега Привязки могут быть и другие атрибуты. Кроме того, в строке может быть более 1 якорного тега. Я делаю фильтрацию в vb.net, прежде чем он пойдет в базу данных.

asp.net   html   vb.net    

371   1   20:02, 23rd August, 2020


Интернализация класса и методов в .NET Assembly

У меня есть набор из нескольких сборок (один assembly должен использоваться как API, и это зависит от других сборок). Я хотел бы объединить все сборки в одну единственную assembly, но запретить всем сборкам, кроме API, быть видимыми снаружи.

Затем я буду запутывать этот assembly с помощью Ксенокода. Из того, что я видел, невозможно интернализовать assembly с помощью Ксенокода.

Я видел ILMerge от Microsoft, но не смог понять, может ли он делать то, что я хочу. http://research.microsoft.com / ~mbarnett/ILMerge.aspx

c#   .net   vb.net   assemblies    

508   4   23:37, 11th August, 2020


ASP.Net: использование System.Web.UI.Control.ResolveUrl() в общей / статической функции

Как лучше всего использовать ResolveUrl() в общей / статической функции в Asp.Net? Мое текущее решение для VB.Net-это:

Dim x As New System.Web.UI.Control
x.ResolveUrl("~/someUrl")

Или C#:

System.Web.UI.Control x = new System.Web.UI.Control();
x.ResolveUrl("~/someUrl");

Но я понимаю, что это не лучший способ назвать его.

c#   asp.net   vb.net   static   resolveurl    

560   3   12:53, 8th August, 2020


Как сохранить datagrid в excel в vb.net?

Я знаю, что это должно быть легко, но как мне экспортировать/сохранить DataGridView в excel?

vb.net   excel    

460   9   15:04, 27th August, 2020


Есть ли у вас рекомендуемые шаблоны файлов для resharper для VB.Net

Те, что торчат и делают жизнь полезной.

vb.net   templates   file   resharper    

433   2   16:52, 25th August, 2020


Разница в производительности между IIf() и If

В Visual Basic существует ли разница в производительности при использовании функции IIf вместо оператора If ?

vb.net   if-statement   iif-function    

553   9   03:48, 10th August, 2020


Если IIf() и If()

Недавно я задал вопрос о IIf vs. If и узнал, что в VB есть еще одна функция, называемая If , которая в основном делает то же самое, что и IIf , но является коротким замыканием.

Работает ли эта функция If лучше, чем функция IIf? Превосходит ли оператор If функции If и IIf ?

.net   vb.net   if-statement   iif-function    

442   2   12:39, 4th August, 2020


Не удается получить доступ к удаленному объекту - как это исправить?

В проекте VB.NET WinForms я получаю исключение

Невозможно получить доступ к удаленному объекту

при закрытии формы. Это происходит очень редко, и я не могу воссоздать его по требованию. Стек trace выглядит следующим образом:

Cannot access a disposed object. Object name: 'dbiSchedule'.
  at System.Windows.Forms.Control.CreateHandle()
  at System.Windows.Forms.Control.get_Handle()
  at System.Windows.Forms.Control.PointToScreen(Point p)
  at Dbi.WinControl.Schedule.dbiSchedule.a(Boolean A_0)
  at Dbi.WinControl.Schedule.dbiSchedule.a(Object A_0, EventArgs A_1)
  at System.Windows.Forms.Timer.OnTick(EventArgs e)
  at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
  at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

dbiSchedule - это управление расписанием от Dbi-tech. В форме есть таймер, который обновляет расписание на экране каждые несколько минут.

Есть идеи, что вызывает исключение и как я могу его исправить? или даже просто возможность воссоздать его по требованию?


Hej и! Спасибо за все ответы. Мы останавливаем таймер на событии FormClosing и проверяем свойство IsDisposed в компоненте расписания, прежде чем использовать его в событии Timer Tick, но это не помогает.

Это действительно раздражающая проблема, потому что если кто - то действительно придумал решение, которое сработало-я не смогу подтвердить решение, потому что я не могу воссоздать проблему вручную.

.net   vb.net   winforms    

463   11   14:46, 26th August, 2020