Результаты поиска
Надежный таймер в консольном приложении
Я знаю, что в .NET есть три типа таймеров (см. сравнение классов таймеров в библиотеке классов фреймворка .NET ). Я выбрал потоковый таймер, поскольку другие типы могут дрейфовать, если основной поток занят, и мне нужно, чтобы это было надежно.
Способ работы этого таймера в управлении таймером помещается на другой поток, поэтому он всегда может тикать вместе с работой, начатой в Родительском потоке, когда он не занят.
Проблема с этим таймером в консольном приложении заключается в том, что, пока таймер тикает на другом потоке, основной поток ничего не делает для закрытия приложения.
Я попробовал добавить цикл while true , но тогда основной поток слишком занят, когда таймер действительно выключается.
Декодирование 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" для каждого байта вместо того, чтобы пытаться разобрать его?
CSV импорт файлов в .Net
Я понимаю, что это вопрос новичка, но я ищу простое решение - кажется, что оно должно быть.
Как лучше всего поместить файл import a CSV в строго типизированную структуру данных? Опять же просто = лучше.
Установка объектов на Null/Nothing после использования in .NET
Следует ли вам установить все объекты в null (Nothing в VB.NET), как только вы закончите с ними?
Я понимаю, что в .NET необходимо избавиться от любых экземпляров объектов, реализующих интерфейс IDisposable , чтобы освободить некоторые ресурсы, хотя объект все еще может быть чем-то после его удаления (отсюда свойство isDisposed в формах), поэтому я предполагаю, что он все еще может находиться в памяти или, по крайней мере, частично?
Я также знаю, что когда объект выходит из области видимости, он помечается для сбора, готового к следующему проходу сборщика мусора (хотя это может занять некоторое время).
Таким образом, имея это в виду, будет ли установка его в null ускорить систему освобождения памяти, как это не должно работать, что он больше не находится в области и есть ли какие-либо плохие побочные эффекты?
MSDN статьи НИКОГДА не делают этого в примерах, и в настоящее время я делаю это так, как не могу видишь, какой вред. Однако я столкнулся со смешением мнений, поэтому любые комментарии полезны.
Каков наилучший способ обернуть время вокруг рабочего дня?
У меня есть ситуация, когда я хочу добавить часы к дате и иметь новую дату вокруг рабочего дня. Я придумал функцию, чтобы определить эту новую дату, но хочу убедиться, что я ничего не забыл.
Часы, чтобы быть добавлены называют "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, над которым я работаю, используя полную версию Visual Studio 2005. В свойствах публикации проекта у меня есть параметр автоматически увеличивать ревизию с каждой публикацией .
Проблема в том, что это только увеличивает ревизию в установочных файлах. Похоже, что он не обновляет номер версии в окне About (который является универсальным, встроенным шаблоном About Box). Этот номер версии, похоже, исходит от My.Application.Info.Version .
Что я должен использовать вместо этого, чтобы мой автоматически увеличивающийся номер редакции отображался в поле о программе?
Каковы наиболее важные функциональные различия между C# и VB.NET?
Конечно, есть разница в общем синтаксисе, но какие еще критические различия существуют? Есть же какие -то различия, верно?
Как я могу удалить узлы из 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 повторителя?
Загрузить 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
Что делать Реф, знач и про параметры метода?
Я ищу ясный, лаконичный и точный ответ.
В идеале в качестве фактического ответа, хотя ссылки на хорошие объяснения приветствуются.
Это также относится к VB.Net, но ключевые слова разные- ByRef и ByVal .
Что делать Реф, знач и про параметры метода?
Я ищу ясный, лаконичный и точный ответ.
В идеале в качестве фактического ответа, хотя ссылки на хорошие объяснения приветствуются.
Это также относится к VB.Net, но ключевые слова разные- ByRef и ByVal .
Как создать файл автоматической сборки для VB.Net в NAnt?
Я взял на себя разработку веб-приложения, ориентированного на платформу .net 1.0 и написанного на языках C# и Visual Basic.
Я решил, что первое, что нам нужно сделать, это уточнить процесс сборки, я написал файлы сборки для проектов C#, но у меня есть тонны проблем с созданием файла сборки для Visual Basic.
По общему признанию, я лично не знаю VB, но похоже, что мне нужно жестко закодировать все импортные и ссылочные файлы в моем файле сборки, чтобы получить что-либо до work...certainly не лучший способ делать вещи...
Например: если я не включу систему пространств имен в файл сборки, я получу несколько ошибок общих неизвестных типов, например: Guid
не NAnt, как правило, требуют этот код VB или является ли код VB нужен можно NAnt-содружественная рефакторинг?
У кого-нибудь есть советы VB NAnt?
Вопрос интервью на тему C# и VB.net сходства/различия
Я уже несколько лет являюсь разработчиком VB.net, но в настоящее время я обращаюсь к нескольким компаниям, которые используют C#..мне даже сказали, что по крайней мере одна из компаний не хочет разработчиков VB.net.
Я искал в интернете, пытаясь найти реальные различия между этими двумя и спросил о crackoverflow. Единственное существенное различие - это несколько синтаксических различий, которые для меня тривиальны, потому что я также являюсь разработчиком Java.
Какой будет хороший ответ интервьюеру, когда он скажет мне, что ищет разработчика C# - или аналогичные вопросы?
Что это лучший способ, чтобы выполнить итерации через строго типизированный общего списка?
Как лучше всего перебирать строго типизированный универсальный список в C#.NET и VB.NET?
Создать таблицу DB из таблицы набора данных
Можно ли (в Vb.Net 2005), не разбирая вручную свойства таблицы dataset, создать таблицу и добавить ее в базу данных?
У нас есть старые версии нашей программы На некоторых машинах, которые, очевидно, имеют нашу старую базу данных, и мы ищем способ определить, есть ли отсутствующая таблица, а затем создать таблицу на основе текущего состояния таблицы в наборе данных. Мы переписывали таблицу каждый раз, когда выпускали новую версию (если были добавлены новые столбцы), но мы хотели бы избежать этого шага, если это возможно.
Random целое число в VB.NET
Мне нужно сгенерировать целое число random между 1 и n (где n-положительное целое число), чтобы использовать его для юнит-теста. Мне не нужно что - то слишком сложное, чтобы гарантировать истинную случайность-просто старомодное число random.
Как бы я это сделал?
Очистка текста 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 подойдет.
Страница общей коллекции без 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
Как использовать BITS для загрузки с пути UNC?
Как лучше всего распространять файлы пользователям в удаленных офисах, используя BITS с UNC путем или BITS с HTTP? У меня есть проект VB.NET, который в настоящее время загружается с пути HTTP, но есть дополнительная сложность (например, наличие веб-сервера).
Или есть лучший способ сделать это? Низкое использование полосы пропускания более важно, чем скорость синхронизации.
IntelliSense для объектов XElement со схемой XML
Читая статью под названием "Increase LINQ Query Performance" в июльском журнале MSDN, автор утверждает, что использование Imports в VB, предоставляющего путь к схеме в текущем проекте, включит IntelliSense для XElement. В предоставленном коде он использует операторы типа xelement.@name для восстановления значений атрибутов и так далее.
Я не пробовал это сам в VB, но я хотел бы использовать это в C#., это действительно похоже на LINQ до XSD.
Есть ли эквивалент в C#? кажется, что невозможно использовать пространство имен внутри кода C#, нет эквивалента using для этого оператора Import .
Зарезервированное Ключевое слово в перечислении в C#
Я хотел бы использовать as и is в качестве членов перечисления. Я знаю, что это возможно в VB.NET, чтобы написать его так:
Public Enum Test
[as] = 1
[is] = 2
End Enum
Как написать эквивалентный оператор в C#? Следующий код не компилируется:
public enum Test
{
as = 1,
is = 2
}
Есть ли способ автоматизировать тестирование форм windows?
Я знаком с nunit для модульного тестирования бизнес-уровня, однако сейчас я ищу, чтобы автоматизировать тестирование уровня gui win forms.
Я видел watin и watin рекордер для автоматизации тестов в веб-приложении, получая доступ к элементам управления и автоматизируя их. Однако я изо всех сил пытаюсь найти эквивалент watin для windows форм (написанных в c# или vb.net), предпочтительно с открытым исходным кодом.
Существует ли один или все продукты основаны на записи нажатий мыши и клавиатуры?
Update: я посмотрел на этот пост в блоге на белом фоне, и мне кажется, что это именно то, что я ищу. Сообщение в блоге поднимает некоторые вопросы, но поскольку белый цвет есть только в версии 0.6, они могут быть решены. Будьте заинтересованы, если другие использовали белый цвет или любые другие для сравнения.
Фильтрация тегов привязки в строке
Мне нужно отфильтровать якорные теги в строке. Например,
Check out this site: <a href="http://www.stackoverflow.com">stackoverflow</a>
Мне нужно иметь возможность отфильтровать тег привязки к этому:
Check out this site: http://www.stackoverflow.com
Этот формат также не может быть постоянным. У тега Привязки могут быть и другие атрибуты. Кроме того, в строке может быть более 1 якорного тега. Я делаю фильтрацию в vb.net, прежде чем он пойдет в базу данных.
Интернализация класса и методов в .NET Assembly
У меня есть набор из нескольких сборок (один assembly должен использоваться как API, и это зависит от других сборок). Я хотел бы объединить все сборки в одну единственную assembly, но запретить всем сборкам, кроме API, быть видимыми снаружи.
Затем я буду запутывать этот assembly с помощью Ксенокода. Из того, что я видел, невозможно интернализовать assembly с помощью Ксенокода.
Я видел ILMerge от Microsoft, но не смог понять, может ли он делать то, что я хочу. http://research.microsoft.com / ~mbarnett/ILMerge.aspx
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");
Но я понимаю, что это не лучший способ назвать его.
Как сохранить datagrid в excel в vb.net?
Я знаю, что это должно быть легко, но как мне экспортировать/сохранить DataGridView в excel?
Есть ли у вас рекомендуемые шаблоны файлов для resharper для VB.Net
Те, что торчат и делают жизнь полезной.
Разница в производительности между IIf() и If
В Visual Basic существует ли разница в производительности при использовании функции IIf вместо оператора If ?
Если IIf() и If()
Недавно я задал вопрос о IIf vs. If и узнал, что в VB есть еще одна функция, называемая If , которая в основном делает то же самое, что и IIf , но является коротким замыканием.
Работает ли эта функция If лучше, чем функция IIf? Превосходит ли оператор If функции If и IIf ?
Не удается получить доступ к удаленному объекту - как это исправить?
В проекте 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, но это не помогает.
Это действительно раздражающая проблема, потому что если кто - то действительно придумал решение, которое сработало-я не смогу подтвердить решение, потому что я не могу воссоздать проблему вручную.