漫谈

本文使用 VS 2010/2015 作为开发环境。

小提示:在 Visual Studio 中,为了使得直接运行(不调试)控制台程序时,能够在控制台窗口的最后显示“请按任意键继续”,需要在“解决方案资源管理器”中打开项目的属性页面,然后在 配置属性->链接器 -> 系统 -> 子系统 中选择“控制台 (/SUBSYSTEM:CONSOLE)”。

Continue reading “漫谈”

.NET 获取网络连接状态的方法

使用 `My` 命名空间

在 Visual Basic.NET 中,可以使用My.Computer.Network.IsAvailable 来获取网络是否已经连接。此函数的定义如下所示:

        '''**********************************************************************
        ''';IsAvailable
        ''' <summary>
        '''  Indicates whether or not the local machine is connected to an IP network.
        ''' </summary>
        ''' <value>True if connected, otherwise False</value>
        ''' <remarks></remarks>
        Public ReadOnly Property IsAvailable() As Boolean
            Get

                Return NetInfoAlias.NetworkInterface.GetIsNetworkAvailable()

            End Get
        End Property

由此引入了C#中获取网络状态的方法。 Continue reading “.NET 获取网络连接状态的方法”

论 Visual Basic 对 .NET 的影响

一瞬间回到了 Visual Basic 6.0 时代……

一把辛酸一把泪。

调试器自动调用 ConditionalExpression.ToString() 后出现的惊艳一幕。
调试器自动调用 ConditionalExpression.ToString() 后出现的惊艳一幕。

以及

Lambda……
Linq.Expression 生成的 Lambda 函数

这样根本没法调试好不……

最后只得使用 `Debug.Print` ,还用的是 Expression……

LINQ to SQL 中 Xml (XElement) 字段的常见问题

cite=LINQ to SQL FAQ – XML columns in SQL

LINQ to SQL 目前不支持包含 XElement 查询的 Expression 对象

However, LINQ to SQL does not appear to support ANY translations of XML queries on XElement to SQL – this mans that the following statement :

var filtered = from t in Table
where t.XmlCol.Descendants("SomeElement").Value == somevar
 select t

will fail at runtime as the LINQ-to-SQL parser is unable to translate on our XML data column XmlCol query into an Xpath.

LINQ to SQL 目前不支持由 XElement 内部变化引起的记录更新

A LINQ to SQL xml datatype column is represented as an XElement. If you modify this be careful as LINQ to SQL will not spot internal changes to XElement and save them to the database.

For example:

Dim myElement as XElement = Table.XMLdata
myElement.Value = "test"
db.SubmitChanges()

will not alter the instance XElement and so will not change the Table.XMLdata entry. The workaround for this is to write it back as a new element:

Dim myElement as XElement = Table.XMLdata
myElement.Value = "test"
Table.XMLdata = new XElement(myElement)
db.SubmitChanges()

 

Content is available under CC BY-SA 3.0 unless otherwise noted.