小编Chr*_*lor的帖子

为什么MAC和Window版本之间存在Silverlight实现中的以下差异

我正在阅读Windows的Silverlight实现与MAC实现之间的差异列表.哪个可以在这里找到.

虽然一些差异显然与平台差异等有关.有些我只是想知道为什么它们会有所不同.如果有人对此有一些想法或实际的具体信息,我很想听听你的意见.

以下是一些看似奇怪的事情,特别是我列表中的最后一点,这实际上是促使我发布这个问题.

  1. Char.ToLower(Char,CultureInfo) - 在MAC上使用当前的文化而不是指定的文化.很奇怪,因为MAC可能支持多种文化(我没有MAC或者对它了解很多,所以这是我的假设)
  2. Decimal/Single/UInt16/UInt32/UInt64 - 该文档声明不支持所提到的类型,操作系统不支持它们,因此它们被"模拟"(我使用术语'模拟'松散,因为底层CPU肯定支持他们当然不包括十进制).
  3. 双/单*无限属性 - 为什么这些属性在不同平台上返回不同的字符串.现在我并不是说人们应该使用字符串表示进行比较,这将是愚蠢的,但为什么要使它们不同,是不是只是在寻找不需要存在的可移植性问题?或者这更像是一个特定于平台的用户体验问题,MAC用户希望看到无穷大符号而不是单词?
  4. CultureInfo构造函数 - 在Windows上,如果将无效的区域性字符串传递给构造函数,则抛出ArgumentException,在MAC上,CultureInfo将初始化为当前区域性,并且不会引发异常.

现在,鉴于您的代码是根据通常理解的最佳实践编写的,因此这些都不是严重的差异.但是,我想知道为什么我认为可能不正确的事情是行为合同的一部分,虽然在.NET中不明确,就像我将无效的文化字符串传递给构造函数时所期望的那样,并不能提供一致的行为平台,这似乎是相当随意的,只是在没有充分理由的情况下寻找可移植性问题,或者在那里?

.net silverlight cross-platform silverlight-4.0

12
推荐指数
0
解决办法
301
查看次数

将数据绑定到自定义活动设计器中的Combobox

我有一个自定义活动,其中一个参数是一个字符串.但是,我不希望设计人员输入任意字符串,而是希望向设计人员提供带有选项列表的Combobox,这些选项是动态的,并从数据库加载到List <>集合中.

我的问题是我不知道如何将设计器中的Combobox绑定到此列表并将选择设置为活动的in参数.在视觉上我让活动设计师工作,这只是一步.

workflow workflow-foundation workflow-foundation-4

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

将ObservableCollection <>绑定到TextBox

我有以数据形式从Web服务返回的数据,ObservableCollection<string>我希望将集合绑定到只读,TextBox以便用户可以选择数据并将其复制到剪贴板.

要将集合绑定到我创建的TextBox的Text属性,该TextBox IValueConverter将集合转换为文本字符串.这似乎有效,除了它只工作一次,就好像绑定不能识别对Observable集合的后续更改.这是一个简单的应用程序,重现问题,只是为了确认绑定工作正常我还绑定到`ListBox'

这是因为Text绑定简单不处理集合的更改事件吗?

一个选项当然是我处理集合更改并将它们传播到TextBox绑定的Text属性,这很好,但我想理解为什么在我看来是一个明显的解决方案是不行的正如所料.

XAML

<Window x:Class="WpfTextBoxBinding.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:WpfTextBoxBinding"
        Title="MainWindow" Height="331" Width="402">
  <StackPanel>
    <StackPanel.Resources>
      <local:EnumarableToTextConverter x:Key="EnumarableToTextConverter" />
    </StackPanel.Resources>
    <TextBox Text="{Binding TextLines, Mode=OneWay, Converter={StaticResource EnumarableToTextConverter}}" Height="100" />
    <ListBox ItemsSource="{Binding TextLines}" Height="100" />
    <Button Click="Button_Click" Content="Add Line" />
  </StackPanel >
</Window>
Run Code Online (Sandbox Code Playgroud)

代码背后

using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;
using System.Windows;
using System.Windows.Data;
using System.Globalization;

namespace WpfTextBoxBinding
{
  /// <summary>
  /// Interaction logic for MainWindow.xaml
  /// </summary>
  public partial class MainWindow : …
Run Code Online (Sandbox Code Playgroud)

data-binding silverlight wpf ivalueconverter

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

按位标志和Switch语句?

我有以下代码(示例),我真的不喜欢这么多'if'检查:

public enum Flags 
{
    p1 = 0x01,  // 0001
    p2 = 0x02,  // 0010  
    p3 = 0x04,  // 0100
    p4 = 0x08   // 1000
};      

public static void MyMethod (Flags flag)
{
    if ((flag & Flags.p1) == Flags.p1)
        DoSomething();

    if ((flag & Flags.p2) == Flags.p2)
        DosomethingElse();

    if ((flag & Flags.p3) == Flags.p3)
        DosomethingElseAgain();

    if ((flag & Flags.p4) == Flags.p4)
        DosomethingElseAgainAndAgain();
}

MyMethod(Flags.p1 | Flags.p3);
Run Code Online (Sandbox Code Playgroud)

有没有办法,我可以使用'switch'语句.也许如果我将它们转换为字符串,或使用数组?

c# enums bit-manipulation switch-statement

8
推荐指数
2
解决办法
7789
查看次数

WCF .net 4.0 HTTP基本身份验证

我现在已经为此吵了几天了.

我只是尝试使用基本HTTP身份验证将用户名/密码传递到我的RESTful服务中.其他一切都很棒!

这是我的web.config看起来像:

<?xml version="1.0"?>
<configuration>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    </modules>
  </system.webServer>

  <system.serviceModel>

    <bindings>
      <wsHttpBinding>
        <binding name="">
          <security mode="Message">
            <message clientCredentialType="UserName" />
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>

    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

    <standardEndpoints>
      <webHttpEndpoint>
        <!-- 
            Configure the WCF REST service base address via the global.asax.cs file and the default endpoint 
            via the attributes on the <standardEndpoint> element below
        -->
        <standardEndpoint name="" helpEnabled="true" defaultOutgoingResponseFormat="Json" automaticFormatSelectionEnabled="true"/>
      </webHttpEndpoint>
    </standardEndpoints>

    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceCredentials>
            <userNameAuthentication …
Run Code Online (Sandbox Code Playgroud)

c# asp.net rest wcf restful-authentication

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

如何使用C Sharp计算每个Java类的方法数量?

我必须在C#中完成一个项目才能找到每个java类的方法数量。

我可以使用c#正则表达式在.java文件中找到所有方法,但是我想要的是查找每个类(包括内部类)的方法数量。谁能帮我。

string[] lines = File.ReadAllLines(file);

int countLine = 0;
int AllCount = 0;

foreach (string line in lines)
{

    countLine = MethodsCount(line);
    AllCount = AllCount + countLine;

}

label5.Text = AllCount.ToString();
Run Code Online (Sandbox Code Playgroud)

这是方法计数方法。

private int MethodsCount (string LineOperator)
{
    int count = 0;

    string[] words = LineOperator.Split('{');

    foreach (string word in words)
    {
        if (Regex.IsMatch(word, @"(static\s|final\s)?(public|private|internal)(\sstatic|\sfinal)?\s(int|boolean|void|double|String|long|String\[\]|String\[\]\[\])?\s([a-z]|[A-Z]+[a-z]+|[a-z]+[A-Z]+)+(\s)*\((\s|\n|\r)*"))
        {
            count = count + 1;
        }
    }

    return count;
}
Run Code Online (Sandbox Code Playgroud)

如果我们考虑一堂课

public class vehicle {

    public method1() {
       ---------
    }

    public method2() { …
Run Code Online (Sandbox Code Playgroud)

c# regex

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

如何在C#中使用SendMessageTimeout获取窗口标题

我需要枚举所有打开的窗口并获取它们的标题,但问题是某些窗口属于同一个进程但是属于另一个被阻塞的线程(等待互斥锁).因此,我不能将GetWindowText用于属于我自己进程的窗口,因为这将导致SendMessage调用,这将阻止我的代码执行(因为它将等待被阻塞线程的relpy).

顺便说一下这是一篇关于GetWindowText内部如何工作的有趣文章:http://blogs.msdn.com/b/oldnewthing/archive/2003/08/21/54675.aspx

作为一个解决方案决定使用SendMessageTimeout到窗口,以检索其标题,但我无法使其工作.我在做的是:

[DllImport("User32.dll")]
public static extern int SendMessageTimeout(
  IntPtr hWnd, 
  int uMsg, 
  int wParam, 
  int lParam, 
  int fuFlags, 
  int uTimeout, 
  out StringBuilder lpdwResult);

...

StringBuilder sb = new StringBuilder(256);
int result = Win32API.SendMessageTimeout(
  hWnd, 
  0x0D /*WM_GETTEXT*/, 
  256, 
  0, 
  10 /*SMTO_ABORTIFHUNG | SMTO_NOTIMEOUTIFNOTHUNG*/, 
  500, 
  out sb);
Run Code Online (Sandbox Code Playgroud)

但我总是得到0表示函数失败,而sb总是为空.有任何想法吗?非常感谢.

c# winapi

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

在C#try -catch中,无法捕获异常

下面的代码无法捕获异常.

确实 catch 无法赶上其发生在该函数的异常?

 try
 {
   Arche.Members.Feedback.FeedbackBiz_Tx a = 
     new Arche.Members.Feedback.FeedbackBiz_Tx();

   a.AddFreeSubscriptionMember(
     itemNo, buyerID, itemName, 
     DateTime.Today,DateTime.Today);
 }
 catch(Exception ex)
 {
   RegisterAlertScript(ex.Message);
 }
Run Code Online (Sandbox Code Playgroud)

...

public void AddFreeSubscriptionMember(
  string itemNo, string buyerID, string itemName,
  DateTime fsStartDate, DateTime fsEndDate)
{
  FeedbackBiz_NTx bizNTx = new FeedbackBiz_NTx();

  if (bizNTx.ExistFreeSubscription(buyerID, itemNo))
  {
    throw new Exception("Exception.");
  }
}
Run Code Online (Sandbox Code Playgroud)

c# try-catch

0
推荐指数
1
解决办法
2821
查看次数