小编Eve*_*ers的帖子

标签内容上的WPF StringFormat

我想格式化我的字符串绑定,因为Amount is Xwhere X是绑定到标签的属性.

我见过很多例子,但以下内容不起作用:

<Label Content="{Binding Path=MaxLevelofInvestment, 
   StringFormat='Amount is {0}'}" />
Run Code Online (Sandbox Code Playgroud)

我也试过这些组合:

StringFormat=Amount is {0}
StringFormat='Amount is {}{0}'
StringFormat='Amount is \{0\}'
Run Code Online (Sandbox Code Playgroud)

我甚至尝试将绑定属性的数据类型更改为int,stringdouble.似乎没什么用.这是一个非常常见的用例,但似乎不受支持.

wpf binding wpftoolkit wpf-controls wpfdatagrid

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

Enum.GetValues和Enum.GetNames之间的区别

我看到Enum.GetValues返回基Array类型并Enum.GetNames返回一个string数组.但我不明白这是多么重要.对于enum反正,该值是字符串.

但是,存在一个相关的问题.该DataGridView ComboBox列数据绑定到一个enum如果我给DataSource= Enum.GetValues,但它不是数据绑定当我给它Enum.GetNames作为DataSource.

.net c#

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

它有什么区别 - 使用Task.Run(vs默认操作委托)运行'async'操作委托?

我试图让我的头围绕异步/等待,并认为我确实理解了一些关于使用的事情.但仍然不太清楚在下面的场景中实际的好处是什么.

查看Task.Run用法.第一种方法使用普通委托并使用Thread.Sleep,但第二种方法使用'async'委托和Task.Delay.

我的问题是:这对这种方法有什么影响(或者它没有)?

该方法本身是一种异步方法.代码正在创建一个单独的线程(通过Task.Run),除了执行该委托之外,该线程没有其他任何操作.因此,即使它在Task.Delay上产生等待,在这种情况下有什么用处,因为线程无论如何都是一个孤立的线程没有用于任何其他东西,即使它只是使用Thread.Sleep,线程仍然是上下文切换到处理器的其他线程.

// The task thread uses a async delegate
public async Task<bool> RetrySendEmail(MailMessage message)
{
      bool emailSent = false;
      await (Task.Run(***async ()*** =>
      {
            for (int i = 0; i < 3; i++)
            {
                 if (emailSent)
                      break;
                 else
                      // Wait for 5 secs before trying again
                      ***await Task.Delay(5000);***

                 try
                 {
                      Smtphost.Send(message);
                      emailSent = true;
                      break;
                 }
                 catch (Exception e) { emailSent = false; // log; }
            }
            return emailSent;
      }));
}

// The task thread uses a …
Run Code Online (Sandbox Code Playgroud)

.net c# async-await .net-4.5

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

如何对Windows服务中托管的wcf服务进行加载/压力测试?

我们在Windows服务中托管了大约15个wcf服务.其中一些在.NET 4.0中,一些在.NET 3.5中.

我想知道如何对Windows服务中托管的wcf服务执行加载/压力/性能测试.客户端使用.net tcp绑定与服务进行通信.此外,大多数API都会为了性能而返回一个流.

我能够找到一些用于在IIS中托管的wcf服务测试的工具,但是不知道对窗口服务中托管的服务进行加载/压力/性能测试的方法.

任何帮助表示赞赏.谢谢.

performance wcf windows-services stress-testing load-testing

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

在.net 4.0 dll中访问.net2.0 dll

我想在我的.Net4.0 dll中加载一个.NET 2.0 dll.我确实搜索了解决方案并找到了'useLegacyV2RuntimeActivationPolicy'属性,我可以将其添加到我的app.config中,如此URL:混合模式程序集是针对版本'v1.1.4322'构建的

但问题是,在我的情况下,我试图在我的4.0 DLL中使用.net2.0 dll,而不是在4.0 exe中.原因是这个4.0 dll然后在Excel中用作自动化插件.

目前,当我从Excel处理我的.NET 4.0 API(为一个功能加载2.0 dll)时,我得到'混合模式2.0 dll无法在4.0运行时加载',这是可以理解的,因为COM加载了4.0 CLR,因此无法加载2.0 dll.

不知何故,我需要使我的4.0 DLL加载2.0运行时.我尝试将app.config添加到4.0 dll但我猜只有.exe默认读取app.config才能加载clr.这是我在4.0 dll项目中的app.config中所拥有的,但没有用.

    <?xml version="1.0"?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
  <runtime>
    <NetFx40_LegacySecurityPolicy enabled="true"/>
  </runtime>
</configuration>
Run Code Online (Sandbox Code Playgroud)

如何解决此问题以使我的.NET 4.0 DLL能够使用.NET 2.0 DLL?

谢谢,玛尼

.net c# com clr com-interop

8
推荐指数
1
解决办法
5349
查看次数

使用Excel Dna进行文档编制

我使用Excel Dna创建.NET xlls并在我的addin和excel工作表函数中使用它.我还使用ExcelDnaPack.exe打包我的xll.

我想知道excel dna是否支持,为我的库API生成文档的任何方法.

谢谢,玛尼

excel excel-dna

8
推荐指数
1
解决办法
3629
查看次数

基于WCF的SOA,分布式和服务器端编程的好书?

我基本上是一个.NET GUI程序员,并且已经使用了很多WPF,Winforms,并且还使用过WCF.我加入了一家银行的新工作,我们正在编写一个新软件来取代现有的交易应用程序.这涉及基于WCF服务的大量工作,我们需要使用/实现许多与SOA相关的概念,如消息代理,pub-sub模式,消息总线等.因此,基本上意味着很多服务器端和分布式编程以我的方式先 !我们现在使用简单的WCF服务来完成我们的服务层工作,但目的是使其更具可扩展性,健壮性,安全性和可靠性.

我有一本基本的WCF书,但想知道是否有更专业的SOA,基于分布式架构的书(基于.NET,WCF或可能不是),可以快速帮助我完成服务器端编程的曲线.可能会谈到CEP,EDA等.

非常感谢,Mani

.net wcf soa distributed

6
推荐指数
1
解决办法
1072
查看次数

SQL查询 - 需要提高性能

我有一个数据加载场景,我在其中创建动态SQL查询以在我们的服务中提取数据和缓存.有1个表包含所有产品数据:ProductHistory(47列,200,000条记录+并将继续增长)

我需要的是: 使用最大ID,最大版本和最大更改来获取最新产品.

第一次尝试:

SELECT distinct Product.* FROM ProductHistory product 
WHERE  product.version = 
(SELECT max(version) from ProductHistory p2 where product.Id = p2.Id 
  and product.changeId = 
(SELECT max(changeid) from ProductHistory p3 where p2.changeId = p3.changeId))
Run Code Online (Sandbox Code Playgroud)

这耗时超过2.51分钟.

其他失败的尝试:

select distinct product.* from ProductHistory product 
where CAST(CAST(id as nvarchar)+'0'+CAST(Version as nvarchar)+'0'+CAST(changeid as nvarchar) as decimal) = 
(select MAX(CAST(CAST(id as nvarchar)+'0'+CAST(Version as nvarchar)+'0'+CAST(changeid as nvarchar) as decimal)) from ProductHistory p2 
where product.Id = p2.Id)
Run Code Online (Sandbox Code Playgroud)

它基本上使用与订购日期时相同的原则,连接按相关性排序的数字.

For example 11 Jun 2007 = 20070711
And in …
Run Code Online (Sandbox Code Playgroud)

sql sql-server database-performance

6
推荐指数
1
解决办法
787
查看次数

循环中的Lambda变量捕获 - 这里发生了什么?

我想试试看,这里发生了什么?编译器生成什么样的代码?

public static void vc()
{
    var listActions = new List<Action>();

    foreach (int i in Enumerable.Range(1, 10))
    {
        listActions.Add(() => Console.WriteLine(i));
    }

    foreach (Action action in listActions)
    {
        action();
    }
}

static void Main(string[] args)
{ 
  vc();
}
Run Code Online (Sandbox Code Playgroud)

输出: 10 10 .. 10

根据这个,ActionHelper的新实例会为每次迭代创建.那么在这种情况下,我认为它应该打印1..10.有人能给我一些编译器在这里做的伪代码吗?

谢谢.

.net c# lambda

5
推荐指数
2
解决办法
3197
查看次数

使用Rx和Await来逐行完成读取文件的异常

我正在学习使用RX并试用这个样本.但是无法修复突出显示的while语句中发生的异常 - 而(!f.EndofStream)

我想逐行读取一个巨大的文件 - 对于每一行数据 - 我想在不同的线程中进行一些处理(所以我使用了ObserverOn)我希望整个事情都是异步的.我想使用ReadLineAsync,因为它返回TASK,所以我可以将它转换为Observables并订阅它.

我想我首先创建的任务线程介于Rx线程之间.但即使我使用currentThread使用Observe和Subscribe,我仍然无法阻止异常.不知道我是如何用Rx完成这个整齐的Aysnc.

想知道整件事情是否可以做得更简单?

    static void Main(string[] args)
    {
        RxWrapper.ReadFileWithRxAsync();
        Console.WriteLine("this should be called even before the file read begins");
        Console.ReadLine();
    }

    public static async Task ReadFileWithRxAsync()
    {
        Task t = Task.Run(() => ReadFileWithRx());
        await t;
    }


    public static void ReadFileWithRx()
    {
        string file = @"C:\FileWithLongListOfNames.txt";
        using (StreamReader f = File.OpenText(file))
        {
            string line = string.Empty;
            bool continueRead = true;

            ***while (!f.EndOfStream)***
            {
                f.ReadLineAsync()
                       .ToObservable()
                       .ObserveOn(Scheduler.Default)
                       .Subscribe(t =>
                           {
                               Console.WriteLine("custom code to manipulate every …
Run Code Online (Sandbox Code Playgroud)

.net c# system.reactive async-await

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