小编Ani*_*jee的帖子

有没有办法使用 C# xml 序列化 .net 中的匿名类型

有没有办法在.net 中序列化匿名类型?正常的 XmlSerializer 会失败,因为该类型没有定义无参数构造函数;NetDataContractSeralizer 失败,因为我们无法将 DataContract 或 Serialized 属性标记为匿名类。

那么有什么聪明的办法或者我们就是做不到吗?

.net c# serialization anonymous-types

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

Visual Studio 2010的任何.net代码覆盖率插件?

任何人都可以建议我为Visual Studio 2010提供一个好的.net代码覆盖插件除了dotCover?[dotCover 1.0 RC有问题,它挂起VS 2010] VS2010自己的覆盖工具不支持nUnit测试.我想要一个支持nUnit测试的插件.

.net nunit code-coverage

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

如何避免此stackoverflow异常?

这是情况,我正在开发一个二叉搜索树,并且在树的每个节点中,我打算存储它自己的高度,以便在avl树形成期间进一步平衡树.以前我有一个迭代方法来计算平衡树时节点的高度,如下所示.

(以下代码属于一个被称为AVLTree<T>子类的类BinarySearchTree<T>)

protected virtual int GetBalance(BinaryTreeNode<T> node)
        {
            if(node != null)
            {
                IEnumerable<BinaryTreeNode<T>> leftSubtree = null, righSubtree = null;

                if (node.Left != null)
                    leftSubtree = node.Left.ToEnumerable(BinaryTreeTraversalType.InOrder);

                if (node.Right != null)
                    righSubtree = node.Right.ToEnumerable(BinaryTreeTraversalType.InOrder);


                var leftHeight = leftSubtree.IsNullOrEmpty() ? 0 : leftSubtree.Max(x => x.Depth) - node.Depth;
                var righHeight = righSubtree.IsNullOrEmpty() ? 0 : righSubtree.Max(x => x.Depth) - node.Depth;


                return righHeight - leftHeight;
            }
            return 0;            
        }
Run Code Online (Sandbox Code Playgroud)

但它带来了很多性能开销.

C#中AVL树的性能

所以我在插入时在每个节点中存储高度值BinarySearchTree<T>.现在在平衡期间,我能够避免这种迭代,并且我正在获得所需的性能AVLTree<T>.

但现在的问题是,如果我尝试按顺序插入大量数据说1-50000 BinarySearchTree<T>(不平衡它),我得到StackoverflowException.我正在提供导致它的代码.你能帮我找一个能避免这个例外的解决方案,也不会影响其子类的表现AVLTree<T> …

.net c# stack-overflow recursion performance

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

如何在C#中实现真正的函数管道?

如何使用C#创建真正的函数管道?我有一些想法如下,但它不是一个真正的管道

public static IEnumerable<T> ForEachPipeline<T>(this IEnumerable<T> source, params Func<T, T>[] pipeline)
{
 foreach (var element in source) {
  yield return ExecutePipeline(element, pipeline);
 }
}

private static T ExecutePipeline<T>(T element, IEnumerable<Func<T, T>> jobs)
{
 var arg = element;
 T result = default(T);
 foreach (var job in jobs) {
  result = job.Invoke(arg);
  arg = result;
 }
 return result;
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,每个元素IEnumerable<T>只有在前一个元素完成执行所有函数(即退出管道)之后才能进入管道,但是根据定义,如果element1完成执行func1并开始执行func2,到那时element2应该开始执行func1并且这样就维持了管道中数据的持续流动.

这种情况是否可以在C#中实现?如果可能的话请给我一些示例代码.

.net c# ienumerable pipeline

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

如何使实体框架CTP5与SQLite一起使用?

我在使用带有EF CTP5的SQLite数据库时非常困难.我只是试图用SQLite 执行这个MSDN示例.但是在线

var food = db.Categories.Find("FOOD");
Run Code Online (Sandbox Code Playgroud)

我收到运行时异常:

System.Data.SQLite.SQLiteException(0x80004005):SQLite errorno这样的表:Categories

注意:必须修改app.config文件,如下所示:

App.config中

<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" />
  </startup>
  <runtime>
    <generatePublisherEvidence enabled="false" />
  </runtime>
  <system.data>
    <DbProviderFactories>
      <remove invariant="System.Data.SQLite"/>
      <add name="SQLite Data Provider" invariant="System.Data.SQLite"
           description=".Net Framework Data Provider for SQLite"
           type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
    </DbProviderFactories>
  </system.data>
  <connectionStrings>
    <add name="ProductContext" connectionString="Data Source=D:\CodeFirst.db;Version=3;New=True;" providerName="System.Data.SQLite" />
  </connectionStrings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

c# sqlite .net-4.0 entity-framework-4 ef-code-first

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

如何使用C#监控进程的IO活动?

使用FileSystemWatcher,我们可以监视特定文件系统的IO活动,但无论如何都要知道哪个正在运行的进程导致该IO?

更具体地说,假设一个正在运行的进程即.abc.exe正在驱动器D上创建一个文件text.txt.我们可以使用FileSystemWatcher监视已在驱动器D中创建了一个名为text.txt的文件,但我们是否可以通过编程方式确定名为abc.exe的进程正在创建该特定文件在驱动器D?

c# filesystemwatcher process

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

如何在 ubuntu 上使用便携式 Clang 设置 CLion?

我想在 ubuntu 中用 CLion 测试 Clang。默认情况下,Clion 会检测我的 gcc 安装,但我想使用 clang 而不是 gcc。此外,我不想通过 apt-get 安装 clang。我已经从 llvm 网站下载了 llvm、clang (3.6.2) 二进制文件。我想使用那个便携式的叮当二进制文件。

这是我的系统设置:

  • Ubuntu - 14.04
  • 海湾合作委员会 - 4.8.4
  • llvm clang - 3.6.2(便携式)
  • CLion - 1.0.4

那么如何在这里使用 llvm-clang 设置 CLion 呢?

c++ ubuntu llvm-clang clion

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

如何为WildFly 9中部署的应用程序设置Log4j2?

当我使用JUnit测试我的应用程序时,它正在按照布局模式的指定打印日志log4j2.xml,但是当我在WildFly 9中部署我的应用程序时,我不再获得相同的格式.甚至Log4j2中的日志级别在服务器中部署时也没有反映出来.

JUnit日志示例:

2016-02-15 11:14:16,314 DEBUG [main] btrcXAPool - 连接状态变为IN_POOL,通知线程最终等待连接

服务器日志示例:

11:11:33,796 INFO [org.quartz.core.QuartzScheduler] (ServerService线程池 - 89)调度程序quartzScheduler _ $ _ anindya-ubuntu1455514892022已启动.

Log4j2.xml:

<Configuration status="WARN" name="myapp" monitorInterval="5">
    <Appenders>
        <RollingFile name="RollingFile" fileName="${myapp.log-dir}/myapp.log"
                     filePattern="${myapp.log-dir}/$${date:yyyy-MM}/myapp-%d{MM-dd-yyyy}-%i.log">
            <PatternLayout>
                <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
            </PatternLayout>
            <Policies>
                <OnStartupTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="25 MB"/>
            </Policies>
            <DefaultRolloverStrategy max="100">
                <Delete basePath="${myapp.log-dir}" maxDepth="2">
                    <IfFileName glob="*/myapp-*.log">
                        <IfLastModified age="7d">
                            <IfAny>
                                <IfAccumulatedFileSize exceeds="1 GB" />
                                <IfAccumulatedFileCount exceeds="1" />
                            </IfAny>
                        </IfLastModified>
                    </IfFileName>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Logger name="com.company.myapp" level="trace" additivity="false">
            <AppenderRef ref="RollingFile"/>
        </Logger> …
Run Code Online (Sandbox Code Playgroud)

java log4j2 wildfly wildfly-9

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

如何在没有任何smtp服务器的情况下在golang中发送电子邮件

我想从用golang编写的服务器应用程序发送批量邮件.我只是不想使用任何第三方smtp服务器来避免使用配额限制.

如何在没有smtp服务器的情况下发送电子邮件?标准库中的smtp包可以帮助我吗?我看到使用smtp包的所有示例都需要第三方smtp服务器来发送电子邮件.

email smtp go

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

如何使Javafx标签可选

有没有在JavaFx8中选择Label文本?我知道,还有其他一些简单的解决方法,比如使用TextField.但是我的标签需要包含TextField不提供的包装工具的多行文本.如果我使用TextArea,问题是我不能像Text一样根据文本的大小缩小TextArea.所以我不能使用其中任何一个.

我对标签文本的使用如下:

<VBox>
    <Label wrapText="true"
           VBox.vgrow="ALWAYS"
           maxHeight="Infinity" minHeight="-Infinity"
           text="Some Random Subject Line With Very Large Text To Test The Wrap Text, Lorem Ipsum Dolor"/>                       
</VBox>
Run Code Online (Sandbox Code Playgroud)

根据VBox宽度,Label的高度会调整大小以完全适合文本.我不能使用TextArea或TextField来模拟这种行为.但我需要能够从Label中选择文本.有任何想法吗?

css java label javafx

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