小编And*_*ndy的帖子

你如何使用c#4.0 app.config中的部分?

我想使用我的应用程序配置存储2个公司的设置,我更喜欢是否可以使用一个部分来分隔另一个的数据而不是给它们不同的密钥名称.

我一直在网上查看,但当人们使用部分或找到过时的简单方法来使用它时,我似乎有点不知所措.有人可以通过我的初学者指南吗?

下面是我的app.config的示例:

  <configSections>
    <section name="FBI" type="" />
    <section name="FSCS" type="" />
  </configSections>

  <FSCS>
    <add key="processingDirectory" value="C:\testfiles\ProccesFolder"/>
  </FSCS>
  <FBI>
    <add key="processingDirectory" value="C:\testfiles\ProccesFolder"/>
  </FBI>
Run Code Online (Sandbox Code Playgroud)

更新:

基于anwer的高级解决方案.如果有人想知道.

App.config中:

<configuration>
    <configSections>
        <sectionGroup name="FileCheckerConfigGroup">
          <section name="FBI" type="System.Configuration.NameValueSectionHandler" />
          <section name="FSCS" type="System.Configuration.NameValueSectionHandler" />
        </sectionGroup>
    </configSections>
    <FileCheckerConfigGroup>
        <FSCS>
            <add key="processingDirectory" value="C:\testfiles\ProccesFolder"/>
        </FSCS>
        <FBI>
            <add key="processingDirectory" value="C:\testfiles\ProccesFolder"/>
        </FBI>
    </FileCheckerConfigGroup>
</configuration>
Run Code Online (Sandbox Code Playgroud)

码:

// Get the application configuration file. 
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

// Get the collection of the section groups. 
ConfigurationSectionGroupCollection sectionGroups = config.SectionGroups;

foreach (ConfigurationSectionGroup sectionGroup in …
Run Code Online (Sandbox Code Playgroud)

.net c# configuration app-config configurationsection

57
推荐指数
2
解决办法
7万
查看次数

如何比较两个DateTimes on Time只忽略日期?

似乎每个人都忽略了时间部分,但是你如何比较忽略日期的两个日期时间呢?如果我们只是将它们比作TIME,它似乎仍然偏向于最早的日期.

(12/02/2004 9:00)>(12/02/2011 8:24) - 这是真的.

下面的代码可以工作,但是在分别比较小时和分钟的情况下,感觉有点跳动.

var results = from x in dataContext.GetTable<ScheduleEntity>()                           
              where x.LastRunDate < date.Date 
              && x.reportingTime.Hour <= date.Hour
              && x.reportingTime.Minute <= date.Minute
              && x.reportingFequency.Substring(position, 1) == scheduled
              select x;  
Run Code Online (Sandbox Code Playgroud)

另外,我们这样做的原因是因为我们无法将SQL TIME与TIMESPAN进行比较,表示它会相同,但LINQ返回"TIME转换为bigint转换错误".

c# datetime .net-4.0

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

AsEnumerable()对LINQ实体的影响是什么?

这里这里阅读问题让我对这种情况有所了解,似乎使用AsEnumerable是内存消耗.有没有更好的方法来实现这个LINQ以及现在的方式,数据是否可靠?

删除AsEnumerable导致"除了Contains运算符之外,本地序列不能用于查询运算符的LINQ to SQL实现".

var results = from p in pollcards.AsEnumerable()
                          join s in spoils.AsEnumerable() on new { Ocr = p.OCR, fileName = p.PrintFilename } equals new { Ocr = s.seq, fileName = s.inputFileName }
                          where p.Version == null
                          orderby s.fileOrdering, s.seq
                          select new ReportSpoilsEntity
                          {
                              seq = s.seq,
                              fileOrdering = s.fileOrdering,
                              inputFileName = s.inputFileName,
                              Ocr = p.OCR,
                              ElectorName = p.ElectorName
                          };
Run Code Online (Sandbox Code Playgroud)

c# linq entity enumerable

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

如何从XmlReader创建XML文件?

如何从System.Xml.XmlReader编写XML文件?

我认为这将是一个简单的问题,但每当我搜索时,我似乎最终都会将文件读取到读取器或逐个节点地编写.

XmlReader对象传达存储在数据库中的xml,只需要从数据库中传出一个文件即可.有没有简单的方法来做到这一点?

        SqlCommand dataCmd = new SqlCommand(sqlText, Conn);
        System.Xml.XmlReader dataReader = null;

        dataCmd.CommandTimeout = 60000;

        Conn.Open();
        dataReader = dataCmd.ExecuteXmlReader();
        dataReader.Read();
Run Code Online (Sandbox Code Playgroud)

c# xml xmlwriter xmlreader

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

一个大数据库查询比许多小数据库查询有什么优势

我继承了应用程序,它所做的是从4个视图中获取数据,其中包含1000个记录的块中的xml文件,然后将它们写入xml文件中,所有这些都由具有9种不同可能性的类型参数分割.这意味着在最坏的情况下,每1000个该类型/视图组合将有36个连接到数据库.

实际数据将存在90.000行,在这种情况下,900 - 936次从数据库中获取最多1000行.

现在我想知道将所有数据读入应用程序并使应用程序使用它来编写900多个文件会带来什么好处.

1000行约800MB,90.000行约81GB的数据被传输.

如果我们一次性读取所有代码,则必须重写代码,尽管这更有意义,但这是一次性工作.在90.000行之后,我们将永远不再使用此代码.是否值得用2,3个小时重写代码,以减少这种连接数量?

.net c# sql .net-4.0 c#-4.0

5
推荐指数
1
解决办法
1808
查看次数

在Visual Studio 2010中添加服务引用似乎不起作用

回答=问题很简单我们有一个共同的lbrary功能.该服务是这个常见的人尝试过的新功能,并且仍然存在于项目引用的功能中.这导致项目有2个相同的命名空间(一个在公共dll中,一个在服务中).

由于服务在IIS中的权限,我们首先添加此引用时出现问题.我们修复了这个问题但是,当再次添加引用时,它似乎只是部分添加了引用.它确实出现在服务列表中但不在应用程序配置中,并且无法使用(intellisense不会找到它,也不会手动输入工作).

如果我们在一个不同的项目中尝试这个它确实添加完美,我们尝试删除任何我们可以找到的关于参考的内容,然后再读取它(子文件夹,在记事本中打开项目并删除那里的所有引用)但似乎没有任何效果.

当以类似的方式删除和读取不同服务到这个项目时,我们可以将它添加到同一解决方案中的不同项目,而不是在这个项目中.

任何人都知道为什么会发生这种情况和可能的解决方案

编辑:当我们在同一个解决方案中重新创建项目并拖动所有类等时,我们可以根据需要添加和删除此引用.虽然这可以算作一个解决方案,但我真的想知道为什么事情就像发生的那样发生,而不是在事情似乎陷入困境时重新创建项目.视觉工作室中是否存在可能导致此问题的缓存或其他内容?

有时它需要更长时间(或从未找到它)才能找到服务,然后在<1秒内执行此操作.获得它的最佳方式似乎停止并开始搜索.不确定它是否相关但它看起来像我的PC和我们使用的另一个之间的差异.

Edit2:我们也尝试删除services文件夹,重新添加服务重新创建文件夹并添加此引用它不起作用.如果我们在删除文件夹后添加不同的服务,那么该引用确实有效.添加我们想要添加的引用后不会使它工作.

Edit3:在一个额外的项目中,我可以在它工作的地方添加一次,但是删除引用然后重新添加它会使它不再起作用.一个类似的引用,我可以删除和重新添加我想在同一个项目中的次数,它继续工作.删除后重新添加并且无法找到"无法找到类型或命名空间"错误时,仍未找到此引用.

我们还尝试更改解决方案和项目GUID,但仍然没有在项目中正确添加服务引用.)

**Edit4:关闭"配置服务引用"中引用的程序集中的"重用"类型时.对话框visual studio将信息添加到Reference.cs页面,使该页面为空.取消选中此框会添加对该文件的所有引用,并使服务引用有效.

但是我可以使用大部分参考,我错过了入口点,这意味着我无法运行它.

这是我不知道的对话框,以便能够进一步发展.

打印对话框的屏幕

.net c# wcf project c#-4.0

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

如何将Collection <x>转换为IQueryable <x>

我正在尝试设置一个moq,但我需要创建一个假的IQueryable.我做了一个收藏,但我不知道如何把它投入到IQueryable.

Collection<DetailDataEntity> DetailDataEntityCollection = 
    new Collection<DetailDataEntity>();

DetailDataEntity DetailDataEntity = new DetailDataEntity();
DetailDataEntity.FeedTypeID = 1;
DetailDataEntityCollection.Add(DetailDataEntity);


_mockRepository.Setup(x => x.GetDetail(It.IsAny<Int32>(),
                                       It.IsAny<Enum.FeedTypeEnum.FeedType>())) 
               .Returns(DetailDataEntityCollection);
Run Code Online (Sandbox Code Playgroud)

c# linq collections

4
推荐指数
1
解决办法
3325
查看次数

如何在Visual C++中使用UTF8Encoding

我需要将下面的c#代码更改为c ++代码.

    public static byte[] StrToByteArray(string str)
    {
        System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
        return encoding.GetBytes(str);
    }
Run Code Online (Sandbox Code Playgroud)

这个网站上,我找到了UTF8Encoding的c ++代码,我从中创建了这段代码

    void StrToByteArray(string unicodeString)
    {
        UTF8Encoding^ utf8 = gcnew UTF8Encoding;
        array<Byte>^encodedBytes = utf8->GetBytes( unicodeString );
    }
Run Code Online (Sandbox Code Playgroud)

但这给了我以下错误

错误2错误C2664:'cli :: array ^ System :: Text :: Encoding :: GetBytes(cli :: array ^)':无法将参数1从'std :: string'转换为'cli :: array

为什么它会在与文档相同的情况下执行此操作?(除了我使用普通字符串,但使用顶级字符串^给我一个错误.)

我不确定它是否相关但我的代码是管理的.

注意:我还没有担心返回任何数据,直到我得到这个工作.

c++ managed-c++ utf-8 visual-studio-2010

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

"DOCTYPE NEWFILE SYSTEM"是什么意思?

我有一个XML文件,它被批量加载到数据库中.现在在xml的顶部有一个doctype newfile.

<!DOCTYPE NEWFILE SYSTEM "XXX_OUT_1234_YYMMDD_00.dtd">
Run Code Online (Sandbox Code Playgroud)

我想知道的是它的用途以及是否需要它.使用模式和文件名将数据加载到带有C#批量上传器的SQL中(我在下面列出了基础知识,还有很多步骤,但我认为它并不相关.)

SQLXMLBulkLoad3Class objBL = new SQLXMLBulkLoad3Class();
objBL.Execute (schema,filename);
Run Code Online (Sandbox Code Playgroud)

模式文件的名称类似于XXX_OUT_1234_090700_06.xsd,类似于Doctype.

现在的原因是doctype将被删除,我不确定它是否真的有用.我环顾四周,但大多数doctypes用于网站(这是一个旧的Windows窗体应用程序.)我找到的大多数信息如下所示,我想知道doctype在这种情况下做了什么.

如果XML片段包含具有可在验证时解析的SYSTEM标识符的DOCTYPE声明,则可以直接验证DTD.只需使用单个参数构造函数之一创建Validator对象.

c# xml doctype

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

如何将“ System :: String ^”转换为“ TCHAR”?

在这里问了一个涉及C ++和C#通信的问题。问题得到解决,但导致了新问题。

这将返回一个字符串(C#)

return Marshal.PtrToStringAnsi(decryptsn(InpData));
Run Code Online (Sandbox Code Playgroud)

这需要一个TCHAR *(C ++)

lpAlpha2[0] = Company::Pins::Bank::Decryption::Decrypt::Decryption("123456");
Run Code Online (Sandbox Code Playgroud)

我已经用谷歌搜索了如何解决这个问题,但是我不确定为什么字符串上有一个胡萝卜(^)。最好将String的返回值更改为C ++可以接受的其他值吗?还是我需要在分配值之前进行转换?

casting c++-cli tchar visual-studio-2010 visual-c++

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