小编CJM*_*CJM的帖子

List <object> .RemoveAll - 如何创建适当的谓词

这是一个noob问题 - 我仍然是C#和泛型的新手,对谓词,委托和lambda表达式来说是全新的......

我有一个"查询"课程,其中包含另一个名为"车辆"的课程的通用列表.我正在构建代码以从父查询添加/编辑/删除车辆.而目前,我特别关注删除.

从我到目前为止所看到的,似乎我可以使用Vehicles.RemoveAll()来删除具有特定VehicleID的项目或具有特定EnquiryID的所有项目.我的问题是理解如何提供.删除所有正确的谓词 - 我看到的例子过于简单化(或者由于我对谓词,委托和lambda表达式缺乏了解,我可能过于简单化).

因此,如果我有一辆List<Of Vehicle> Vehicles车在哪里有一个EnquiryID,我将如何使用Vehicles.RemoveAll()移除给定EnquiryID的所有车辆?

我知道有几种方法,所以我很想听到方法之间的差异 - 尽管我需要一些工作,这也是一个学习练习.

作为补充问题,通用列表是这些对象的最佳存储库吗?我的第一个倾向是收藏品,但看起来我已经过时了.当然,仿制药似乎更受欢迎,但我对其他替代品感到好奇.

c# generics lambda delegates predicate

42
推荐指数
3
解决办法
9万
查看次数

如何防止Visual Studio在调试时启动WcfSvcHost.exe?

我在Visual Studio 2008中有一个有多个项目的解决方案.其中一个项目是WCF项目.有时我只是想调试其他项目,但是当我按F5时,Visual Studio启动了wcfsvchost.exe来托管WCF项目,即使它不是"StartUp Project".

目前,每次我调试其他项目时,我都要卸载WCF项目以防止恼人的WcfSvcHost.exe主机弹出.但是,这不方便.有人知道更好的想法阻止WCF项目在调试模式下托管吗?

.net wcf visual-studio visual-studio-debugging

32
推荐指数
2
解决办法
1万
查看次数

自定义操作 - 错误1001:找不到文件myApp.InstallState

我试图为Visual Studio Installer项目创建自定义操作以修改配置文件的权限.

Installer.cs如下:

public override void Commit(IDictionary savedState)
{
    base.Commit(savedState);

    // Get path of our installation (e.g. TARGETDIR)
    //string configPath = System.IO.Path.GetDirectoryName(Context.Parameters["AssemblyPath"]) + @"\config.xml";
    string configPath = @"C:\Program Files\Blueberry\Serial Number Reservation\config.xml";

    // Get a FileSecurity object that represents the current security settings.
    FileSecurity fSecurity = File.GetAccessControl(configPath);

    //Get SID for 'Everyone' - WellKnownSidType works in non-english systems
    SecurityIdentifier everyone = new SecurityIdentifier(WellKnownSidType.WorldSid, null);

    // Add the FileSystemAccessRule to the security settings.
    fSecurity.AddAccessRule(new FileSystemAccessRule(everyone, FileSystemRights.Modify | FileSystemRights.Synchronize, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, …
Run Code Online (Sandbox Code Playgroud)

c# windows-installer custom-action

32
推荐指数
3
解决办法
3万
查看次数

SQL FOR XML - 将数据输出为元素或属性

我正在尝试以客户指定的特定XML格式从数据库导出一些数据.我生成的XML将由第三方操纵(可能是由XSLT)来生成最终输出,但我想尽可能地将我的XML格式化为该格式.

客户要求每个产品的数据如下:

<product id="1234567890123">
    <activeState partNumber="A1234567890" shipmentDate="20110518" />
</product>
Run Code Online (Sandbox Code Playgroud)

我现有的SQL是:

SELECT SerialNo as id, 
    PartNo as partNumber,
    CONVERT(VARCHAR(8), GETDATE(), 112) AS shipmentDate, 
FROM Products
WHERE SerialNo = @SerialNo
FOR XML PATH ('product'), TYPE)
Run Code Online (Sandbox Code Playgroud)

...呈现:

<product>
  <id>100000000458</id>
  <partNumber>10004905892</partNumber>
  <shipmentDate>20120312</shipmentDate>
</product>
Run Code Online (Sandbox Code Playgroud)

我希望在XSLT中操作这些数据很容易,但纯粹作为一种智力练习,我想看看我能在SQL中走多远.我的第一个目标是简单地将id表示为产品的属性而不是作为子元素.我将要将渲染的activeState元素留给XSLT,但显然,如果我可以帮助他们的话,为什么不这样做呢......

有什么建议?

xml sql t-sql xslt for-xml

22
推荐指数
1
解决办法
2万
查看次数

SQL 2008(SSMS)中的Intellisense中的架构更改未更新

我注意到一个问题 - 感觉就像一个bug,但我怀疑是一个'功能' - 在SQL Server 2008中的SSMS中.

我打开了各种选项卡,例如一个表中的alter table脚本和另一个选项卡中查询该表的SProc,当我执行Alter Table脚本时,更改不会反映在另一个选项卡中的Intellisense中.

我可以创建新查询,但更改仍未反映在Intellisense中.如果我打开一个新的SSMS实例,则会反映这些更改,直到我进行进一步的更改.

但是,如果你过度使用Intellisense并推进修改后的表和代码,那么所有内容都会编译而没有抱怨(如预期的那样).

这是一个错误吗?一项功能?是否有某个地方改变了这种行为?我检查了选项,但看不到任何东西

sql-server intellisense ssms sql-server-2008

20
推荐指数
2
解决办法
7537
查看次数

TransactionScope:避免分布式事务

我有一个父对象(DAL的一部分),其中包含List<t>子对象的collection().

当我将对象保存回DB时,我输入/更新父对象,然后循环遍历每个子对象.为了可维护性,我将孩子的所有代码放入一个单独的私有方法中.

我打算使用标准的ADO事务,但在我的旅行中,我偶然发现了TransactionScope对象,我相信这将使我能够在一个事务中将父方法中的所有数据库交互(以及子方法中的所有交互)包装起来.

到现在为止还挺好..?

所以接下来的问题是如何在TransactionScope中创建和使用连接.我听说使用多个连接,即使它们是相同的DB也可以强制TransactionScope认为它是一个分布式事务(涉及一些昂贵的DTC工作).

是这样吗?或者,正如我似乎在其他地方读到的那样,使用相同的连接字符串(它将自己用于连接池)的情况会好吗?

更实际的是,我......

  1. 在父和子中创建单独的连接(尽管具有相同的连接字符串)
  2. 在父项中创建一个连接作为参数传递它(对我来说似乎很笨拙)
  3. 做点什么......?

更新:

虽然看起来我可以使用我常用的.NET3.5 +和SQL Server 2008+,但是这个项目的另一部分将使用Oracle(10g),所以我不妨练习一种可以跨项目使用的技术.

所以我只是简单地将连接传递给子方法.


选项1代码示例:

using (TransactionScope ts = new TransactionScope())
            {
                using (SqlConnection conn = new SqlConnection(connString))
                {
                    using (SqlCommand cmd = new SqlCommand())
                    {
                        cmd.Connection = conn;
                        cmd.Connection.Open();
                        cmd.CommandType = CommandType.StoredProcedure;

                        try
                        {
                            //create & add parameters to command

                            //save parent object to DB
                            cmd.ExecuteNonQuery();

                            if ((int)cmd.Parameters["@Result"].Value != 0)
                            {
                                //not ok
                                //rollback transaction
                                ts.Dispose();
                                return false;
                            }
                            else //enquiry saved OK
                            {
                                if …
Run Code Online (Sandbox Code Playgroud)

c# transactions transactionscope distributed-transactions

19
推荐指数
1
解决办法
2万
查看次数

如何模拟SerialPort交互以进行测试?

我即将开始开发一个小型应用程序(C#),通过串行端口与PLC和测试单元进行通信 - 这是我第一次进入该领域.

本质上,我将向PLC发送信号以启动操作,然后我将等待来自测试单元(将与PLC独立通信)的操作结果返回ASCII字符串.

根据该字符串的内容,我可能想收听来自PLC的信号......

这对我来说都是新手,所以目前我只是在研究System.IO.Ports.SerialPort; 题外话:那里有第三部分产品,而不是简化与串口的互动,还是内置的课程和你一样好?我想的是易用性而不是更好的功能.

但是,在硬件可用于开发和测试之前几周,我想知道如何模拟与串口之间的通信,以便我可以开始开发我的应用程序?

[我还不知道PLC和PC是如何通信的 - 我知道它将是二进制而不是文本,但此刻,这就是我所知道的.]

c# simulation serial-port

19
推荐指数
2
解决办法
3万
查看次数

jQuery UI ThemeRoller - 安装主题

我正在尝试首次使用ThemeRoller主题安装jQuery UI.我已经下载了jquery 1.4.2 ...我已经下载了几个主题的jQuery UI.我试图按照说明操作,但它们看似矛盾,似乎与下载的文件无关.

当我尝试使用datepicker时... datepicker功能有效,但它具有默认(灰色)样式.

此页面指的是不存在的文件夹/子文件夹/ css文件.此页面引用了不存在的ui.theme.css文件.

我收到的下载包括以下内容:

--development-bundle
---demos
----docs
----external
----themes
------base
------Redmond
----ui
------i8n
------minified
--js
Run Code Online (Sandbox Code Playgroud)

那么你把它放在哪里?我已将js复制到相应的目录并将其链接到我的页面.我也复制了themes/base文件夹,并链接到jquery.ui.all.css文件中.即使是包含的演示也仅显示默认(灰色)样式.

我哪里错了?

编辑:

对不起,我实际上是先尝试过Redmond,但是当它不起作用时,我尝试了Smoothness(随机选择 - 并没有意识到它是灰色的).我得到了相同的结果 - 灰色.[还纠正了上面的文件夹结构]

编辑2: 嗯,我已经弄明白了......最初的Smoothness或Redmond下载都没有CSS文件夹(从我上面描述的结构中可以看出).这两个主题都在几分钟之内下载并具有不同的文件大小).我刚刚尝试下载Cupertino,它有一个CSS文件夹 - 当我将它复制到我的应用程序时,我得到了合适的样式.

所以我再次尝试下载Redmond,并且看到 - 它现在还有一个CSS文件夹...我想知道我是否可能两次下载相同的主题,但它们有不同的时间戳和不同的文件大小......我很困惑.也许jQuery服务器只是一个大脑屁!

今天的金星让我走上了jquery-ui-1.8.custom.css的踪迹,最终导致了我的顿悟!

编辑3:

我刚刚开始下载Start和Humanity - 两个zip文件都没有CSS文件夹!

进一步挖掘,似乎我可能不会疯狂.

jquery jquery-ui themeroller

17
推荐指数
1
解决办法
3万
查看次数

使用c ++构建错误 - 'find_if'不是'std'的成员

在构建项目时,我得到了这个神秘的错误:

'find_if'不是'std'的成员

find_if()以这种方式使用:std :: find_if(...).

知道它可能来自哪里?

c++ build

17
推荐指数
4
解决办法
9876
查看次数

使用XML装饰在反序列化期间指定默认值

我有一个问题反序列化一些XML; 由第三方提供的XML非常冗长,因此如果没有为特定元素设置值,它将提供并清空元素(例如<element1 />).

这是某些元素的问题,例如,那些用于存储整数的元素.我可以控制第三方,所以我可以让他们指定默认值(<myinteger>0</myinteger>)或者我可以让他们完全省略这些元素.这两个都应该避免这个问题.

但是,将来可能会出现这样的情况,即我们没有那么多控制权 - 在这种情况下,是否有一种方法可以通过装饰指定默认值?

    [XmlElement("myinteger")=0???]
    public int MyInteger
    {
        get
        {
            return myInteger;
        }
        set
        {
            myInteger= value;
        }
    }
Run Code Online (Sandbox Code Playgroud)

c# serialization xml-serialization default-value xml-deserialization

15
推荐指数
1
解决办法
2万
查看次数