小编Ars*_*ray的帖子

如何将xsl转换应用于C#中的单个XmlNode的示例

这是我正在尝试做的事情:我有一个XmlDocument,它已经加载到内存中.我想将xsl转换应用于该文档的单个节点.

这是代码:

var xDoc=GetXmlDocument();
var myNode=xDoc.SelectSingleNode("//node");
var xslTransformer=new XslCompiledTransform(); 
xslTransformer.Load(new XmlTextReader(new StringReader(myXslText)));
Run Code Online (Sandbox Code Playgroud)

现在我需要在myNode上应用xslTransformer.任何人都可以给我看一个代码示例,这样做吗?到目前为止我所看到的只适用于输入和输出文件.

c# xml xslt

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

如何枚举类声明的所有事件?

我希望能够枚举一个类实现的所有事件.

class A
{
    public delegate void X();
    public event X EventA;
}

class B:A
{
    public event X EventB;
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能typeof(B)得到一份清单,其中包括EventB

c# reflection

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

找不到主类:Main,应用程序将退出

我有Main.java,看起来像这样:

public class Main {

    /**
     * @param args
     */
    public static void main(String[] args) throws UnsupportedEncodingException {
        // TODO Auto-generated method stub
        System.out.println("here!");
    }

}
Run Code Online (Sandbox Code Playgroud)

我编译它:

javac Main.java
Run Code Online (Sandbox Code Playgroud)

并尝试运行它

java Main
Run Code Online (Sandbox Code Playgroud)

它会因以下例外而死:

Exception in thread "main" java.lang.UnsupportedClassVersionError: Main : Unsupported major.minor version 51.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: Main. Program will exit.
Run Code Online (Sandbox Code Playgroud)

java -version是: …

java

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

检查一组不断变化的字符串是否包含字符串的最快方法

这是我正在做的事情:

  1. 拿一根绳子
  2. 检查HashSet是否包含字符串
  3. 如果没有,将字符串添加到HashSet(如果有,请执行其他操作)

这必须以尽可能快的方式使用非常大的字符串数组

使用HashSet是检查字符串是否已经发生的最快方法,还是有更好的.net 4.5?

c# arrays string comparison hashset

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

如何在托管c ++中实现接口?

这是我声明的界面:

[ServiceContract]
public interface class IShedluer
{
    [OperationContract]
    array<Object^>^ GetResult(UInt64 taskId);
}
Run Code Online (Sandbox Code Playgroud)

这是尝试实现它的类:

ref class MyShedluer:IShedluer
{
    Shedluer ^shedluer;//this is NOT MyShedluer
public:
    MyShedluer(void);

    array<Object^>^ GetResult(UInt64 taskId)
    {
        return shedluer->GetResult(taskId);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我试图编译这个时,我得到了

Error   15  error C3766: 'MyShedluer' must provide an implementation for 
the interface method 'cli::array<Type> ^IShedluer::GetResult(unsigned __int64)'
d:\users\menkaur\documents\visual studio 2010\projects\MyProject\
\kernel\MyShedluer.h    78  1   MyProject.Kernel
Run Code Online (Sandbox Code Playgroud)

我为什么要这个?

c++ managed-c++ interface

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

如何实现TextBox和double值之间的双向绑定?

这是我窗口的代码:

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="leartWPF.ControlTestWindow"
    x:Name="Window"
    Title="ControlTestWindow"
    Width="640" Height="480">

    <Grid x:Name="LayoutRoot">
        <TextBlock Height="26" Margin="45,26,241,0" TextWrapping="Wrap" Text="Please, enter an ariphmetical expression to calculate:" VerticalAlignment="Top"/>
        <TextBox Margin="48,72,63,201" TextWrapping="Wrap" Text="{Binding Input, ElementName=Window, FallbackValue=1+1, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" TextChanged="TextBox_TextChanged" >
        </TextBox>
        <!--<TextBlock Margin="282,208,266,167" TextWrapping="Wrap" Text="=" FontSize="64"/>-->
        <TextBlock Height="90" Margin="83,0,77,60" TextWrapping="Wrap" VerticalAlignment="Bottom" FontSize="48" Text="{Binding Result, ElementName=Window, Mode=TwoWay}"/>
        <Button Content="=" Height="27" Margin="233,0,263,166" VerticalAlignment="Bottom" FontSize="16"/>
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

和班级:

public partial class ControlTestWindow : Window
{
    private string _input;

    public double Result { get; set; }
    private static VsaEngine …
Run Code Online (Sandbox Code Playgroud)

c# data-binding wpf xaml

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

如何在自定义WPF控件中允许Width ="Auto"

我已经基于Expander类创建了一个自定义控件:

public partial class HideableExpander : Expander
{
    public new double Height
    {
        get
        {
            if (Visibility== System.Windows.Visibility.Hidden)
            {
                return 0;
            }
            return base.Height;
        }
        set
        {
            base.Height = value;
        }
    }

    public new double Width
    {
        get
        {
            if (Visibility == System.Windows.Visibility.Hidden)
            {
                return 0;
            }
            return base.Width;
        }
        set
        {
            base.Width = value;
        }
    }

    public new Thickness Margin
    {
        get
        {
            if (Visibility== System.Windows.Visibility.Hidden)
            {
                return new Thickness();
            }
            return base.Margin;
        }
        set
        {
            base.Margin = value; …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml

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

使用await/async会导致性能下降吗?

我正在考虑使用await/async范例重写我的网络库.很多使用该库的代码仍然是同步的,所以我计划将整个库移动到异步模式,然后创建方法存根,这会将异步调用转换为同步调用.

任何人都可以告诉我这是否会使我的图书馆更糟糕的同步使用?(如果它会消耗更多的CPU,方法调用需要更长的时间来执行等)?

c# performance async-await

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

如何正确取消Parallel.Foreach?

我有代码看起来像这样:

Parallel.Foreach(ItemSource(),(item)=>DoSomething(item));
Run Code Online (Sandbox Code Playgroud)

ItemSource() 产生无限的物品流.

我希望在满足某些条件后退出循环,而我宁愿不在DoSomething中抛出异常(我认为这种方法是一种糟糕的编程风格).

理想情况下,会有像cancelToken这样的东西.我会在一个或多个线程中调用cancellationToken.Activate(),之后parallel.foreach将停止创建新线程,并且在最后一个线程退出后,该函数将返回.

这可以用于使用Parallel.ForEach在c#中进行,还是应该使用线程insteag?

更新 以下是微软建议我这样做的方式:

        try
        {
            Parallel.ForEach(nums, po, (num) =>
            {
                double d = Math.Sqrt(num);
                Console.WriteLine("{0} on {1}", d, Thread.CurrentThread.ManagedThreadId);
                po.CancellationToken.ThrowIfCancellationRequested();
            });
        }
        catch (OperationCanceledException e)
        {
            Console.WriteLine(e.Message);
        }
Run Code Online (Sandbox Code Playgroud)

我不喜欢这种方法,因为它涉及在委托中抛出异常.

c# parallel-processing foreach multithreading

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

如何正确解析DateTime字符串

我有输入日期时间字符串,如下所示:2015-01-28 17:55:43.问题是它们处于UTC + 8(或其他一些转变).无论软件运行的时区如何,我都需要将这些字符串解析并正确处理为UTC.我的问题是DateTime.Parse返回本地时间,而不是UTC时间,并且在解析字符串时我没有看到指定shift的方法.我目前的解决方案看起来像这样:

add.LastUpdatedTime = new DateTime((DateTime.Parse(text) - new TimeSpan(0, 8, 0, 0)).Ticks,DateTimeKind.Utc);

这很丑陋,我不确定它在任何情况下都能很好地运作.

有没有更好的方法呢?

c# datetime parsing datetimeoffset

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