Articles of vb.net

从VB.Net迁移到C#

我正在认真考虑从VB.Net转移到C#。 如果你从vb.net跳转到C#,那么你用来学习从新手到专业的语言的最佳资源是什么? 谢谢

设置STS但在webapp中保留formsauthentication

我正在现有的webapp上启用Windows身份基础。 我希望尽可能少地使用现有代码,因此我想使用在应用程序中使用的formsauthentication的登录页面,如果用户通过特定页面输入应用程序,我只需连接STS,例如“im_comming_from_some_other_site.aspx” 。 在“im_comming_from_some_other_site.aspx”中代码如下: Page_Load(…) { if(verifyAgainstSTS() { FormsAuthentication.SetAuthCookie(<some_STS_Userid), …) Response.Redirect("default.aspx") } else { Response.Redirect("http://<STS_server_name/”) } } 是否有人知道这是否可以做到以及如何做? 任何链接到示例代码(如果可用)深受赞赏。 (当validation超时时,当确定要做什么时,需要一些代码;要么转到本地登录页面,要么转到STS登录页面) 我知道这可能看起来像一个糟糕的设计,而不是一直用STS,但我需要尽快实现这一点,我希望保持原始网站尽可能不受影响。

是否可以使用TagLibSharp从MP3文件中删除Lyrics3v2标签?

我想知道是否可以使用TagLibSharp库从MP3文件中删除Lyrics3v2标签类型。 该文档说块条目以单词“ LYRICSBEGIN ”开头并以“ LYRICS200 ”结尾,同时它表示应该存在ID3标签以存在Lyrics3v2标签……但它没有指定是否引用ID3v1或ID3v2标签,或其中任何一个,反正我不明白那部分,因为Lyrics3v2标签是单一标签类型,不是ID3v1 / ID3v2标签类型的一部分,它在mp3标头上有自己的条目所以……我不明白它对ID3v1 / ID3v2 “依赖”意味着什么。 无论如何假设信息是正确的,那么我应该能够使用TagLibSharp从包含Lyrics3v2标签的mp3文件中删除ID3v1和ID3v2标签,然后该标签也将被删除?但是,标签仍然存在。 此外,暴露TagLibSharp类的Lyrics属性似乎不会影响Lyrics3v2标记,所有这些都非常令人困惑。

通过.net中的SqlTransaction禁用对表的读/写?

如何在.net 2.0中使用SqlTransaction,以便当我开始从表中读取数据时,该表被阻止其他人(其他程序)读取/写入该表? 如果SqlTransaction不是一个好的选择,那是什么?

检测客户端的正确方法已从TCP / IP断开连接

我使用了异步TCP / IP服务器,一切正常,但是当客户端由于错误或强制退出应用程序而断开连接时,由于IO.IOException类型的exception,它也会关闭我的服务器。 以下子发生exception: Private Sub ReadCallback(ByVal result As IAsyncResult) Try Dim client As Client = TryCast(result.AsyncState, Client) If client Is Nothing Then Return End If ‘MsgBox(client.ClientID) Dim networkStream As NetworkStream = client.NetworkStream Dim read As Integer = networkStream.EndRead(result) **’ ERRORS HERE!** If read = 0 Then Dim client As Client = TryCast(result.AsyncState, Client) SyncLock […]

如何在C#或VB.NET中确定图像是否为灰度?

首先 首先,请注意,此问题中给出的答案对所有灰度图像都不起作用,并且还注意到在另一个问题中接受的答案根本没有解释如何确定图像是否为灰度图像,但无论如何它不符合我的需求,因为它似乎只涵盖JPEG和TIFF图像,并假设它们将具有EXIF元数据及其中的必需字段。 (我无法理解为什么人们确定我链接的第一个问题是我所链接的第二个问题的“重复”……) 最后, 这个最后接受的答案缺乏一个工作和演示的代码示例,但无论如何都无济于事,因为作者使用Bitmap.GetPixel()函数引用了缓慢且弃用的方法,但我们应该使用Bitmap.LockBits()函数而是为了获得更高的性能优势。 情景 我有一些GIF,JPG,BMP和PNG图像,我需要确定它们是灰度图像还是不是灰度图像。 对于GIF文件,我只关心分析第一帧。 我对图像的数据结构,像素颜色位和那些东西没有多少经验/意识,我只知道非常基础。 所以,如果我错过了重要的信息,我应该提供我将要测试的图像的任何信息,那么请问我,但无论如何要考虑到我想为“所有”类型的图像创建一个通用的解决方案,好吧,不是全部,但至少这些格式:BMP,JPG,GIF和PNG。 在提到的那些图像格式中,我的最高优先级是GIF图像,我将意味着如果能够确定GIF图像是否为灰度的方法不能用于分析其他类型图像的方法,那么我将接受仅涵盖GIF图像像素处理的答案。 题 我认为我的需求很明确:我如何确定图像是否为灰度? 如果它根本不清楚,为了避免我可以做到你可以浪费你的时间: 该解决方案必须至少适用于GIF图像。 (记住,我只关心GIF中的第一帧),但如果提供的解决方案对BMP,JPG和PNG也有效,那么它当然总是更好。 该解决方案必须关注PixelFormat.Format32bppRgb灰度图像。 解决方案一定不能使用Bitmap.GetPixel()函数,而必须使用Bitmap.LockBits() 。 我不是要求解释,伪代码也没有关于图像结构/格式/像素等文档的外部链接,我要求一个有效的代码示例(当然,如果作者覆盖图像结构/像素技术,总是更好提供除代码之外的基本解释)。 在C#或VB.NET中,选择并不重要。 研究 这是我到目前为止所做的。 我试图理解确定图像是否为灰度的点,我也不确定我的条件是否与bytesPerPixel变量一致,以及我的RGB值分配是否正确,因为我从一开始就说我不是图像处理专家所以我可能错过了重要的事情…… VB.NET Public Shared Function IsImageGrayScale(ByVal img As Image) As Boolean Select Case img.PixelFormat Case PixelFormat.Format16bppGrayScale Return True Case Else Dim pixelCount As Integer = (img.Width * img.Height) Dim bytesPerPixel As Integer […]

如何创建多个窗口服务实例?

我想运行服务器上安装的窗口服务的多个实例,而无需再次安装窗口服务。 这怎么可能?

如何就地刷新combobox项目?

ComboBox Items集合是一个ObjectCollection,所以当然你可以在那里存储任何你想要的东西,但这意味着你不会像使用ListViewItem一样获得Text属性。 ComboBox通过在每个项目上调用ToString()来显示项目,或者如果设置了DisplayMember属性则使用reflection。 我的ComboBox处于DropDownList模式。 我有一种情况,当用户选择它时,我想刷新列表中单个项目的项目文本。 问题是ComboBox除了加载之外不会在任何时候重新查询文本,除了删除和重新添加所选项目之外,我无法弄清楚除了删除和重新添加所选项目之外我还想做什么: PlantComboBoxItem selectedItem = cboPlants.SelectedItem as PlantComboBoxItem; // … cboPlants.BeginUpdate(); int selectedIndex = cboPlants.SelectedIndex; cboPlants.Items.RemoveAt(selectedIndex); cboPlants.Items.Insert(selectedIndex, selectedItem); cboPlants.SelectedIndex = selectedIndex; cboPlants.EndUpdate(); 这段代码工作正常,除了我的SelectedIndex事件最终被触发两次(一次在原始用户事件上,然后再次在我重新设置此代码中的属性时)。 在这种情况下,事件被触发两次并不是什么大问题,但效率低下,我讨厌这个。 我可以装备一个标志,以便它第二次退出事件,但这是黑客攻击。 有没有更好的方法让这个工作?

Roslyn:将C#转换为VB

我有一个案例,我需要将C#转换为VB.NET项目。 (我想自动化这个,所以我不能使用在线工具或类似的东西) 有一个“粘贴为C#/ VB”样本视觉工作室扩展 ,似乎能够做到这一点。 我试过转换这个类: namespace TestApplication { class Class1 { /// /// Lorem /// public void Lorem() { } } } 但它最终得到了这个: Namespace TestApplication Class Class1 ”’ Lorem Public Sub Lorem() End Sub End Class End Namespace 它不仅发生在提供XML文档注释时,而且有时在inheritance其他类时也会发生。 这是处理样本转换的代码: csharpToVisualBasicConverter.Convert返回一个SyntaxNode实例。 private void PasteAsVB() { var csharpCode = Clipboard.GetText(TextDataFormat.Text); var tree = CS.SyntaxTree.ParseText(csharpCode); var […]

WPF中的CommandLink

有人能告诉我如何在WPF窗口中添加CommandLink控件? 这就是CommandLink的意思: http : //msdn.microsoft.com/en-us/library/aa511455.aspx