小编Dmi*_*nov的帖子

F#将内部模块视为私有

任何想法为什么以下不编译?

在最后一行,它告诉我Module1没有定义.如果我从Module1中删除"内部"它工作正常.

我有两个代码文件,Module1.fs在项目中的Module2.fs之上.

Module1.fs

module internal Module1

let sample =
    5 + 4
Run Code Online (Sandbox Code Playgroud)

Module2.fs

module Module2

let sample2 =
    3 + Module1.sample
Run Code Online (Sandbox Code Playgroud)

.net f# visibility module

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

Json.net重命名属性

我有一个表示JSON的字符串,我想使用JSON.NET重命名一些属性.我需要一个通用函数来用于任何JSON.就像是:

public static void Rename(JContainer container, Dictiontionary<string, string> mapping)
{
  foreach (JToken el in container.Children())
  {
    JProperty p = el as JProperty;
    if(el != null && mapping.ContainsKey(p.Name))
    {
      // **RENAME THIS NODE!!**
    }

    // recursively rename nodes
    JContainer pcont = el as JContainer;
    if(pcont != null)
    {
      Rename(pcont, mapping);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

怎么做??

.net c# json rename json.net

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

如何将带空格的路径和尾部反斜杠作为属性传递给MSBuild

当我尝试将一些目录路径传递到MSBuild脚本时,如下所示:

MSBuild.exe myproj.proj /p:DirPath="C:\this\is\directory\"
Run Code Online (Sandbox Code Playgroud)

在.proj文件中我用它作为

<PropertyGroup>
  <FilePath>$(DirPath)file.txt</FilePath>
<PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

然后MSBuild编写FilePathc:\this\is\directory"file.txt.如果我传递DirPath没有引号但是使用尾部斜杠(/p:DirPath=c:\this\is\directory\)或没有尾部斜杠但是带引号(/p:DirPath="c:\this\is\directory\")然后一切正常.

允许通过尾部斜杠传递目录路径(它会更方便)和引号(因为路径可以包含空格)可以做些什么?或者它是MSBuild中的一个错误,我应该使用一些解决方法,比如在将它传递给msbuild时删除尾部反斜杠?

msbuild properties

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

Form == false的InvokeRequired和包含控件的InvokeRequired == true

这怎么可能?我有Windows窗体控件,派生自System.Windows.Forms.Form,此窗体中包含WebBrowser控件.Webbrowser对象实例是在form的构造函数中创建的(在InitializeComponent()方法中).然后在后台线程中我使用WebBrowser的内容进行操作,我发现在某些情况下Form.InvokeRequired == false,而WebBrowser.InvokeRequired == true.怎么会这样?

.net webbrowser-control invokerequired winforms

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

使用ReaderWriterLock的真正缺点是什么?

我们有项目目标.NET 2.0 RTM(是的,它应该是.NET 2.0 RTM,我们有一些正统的客户端).而我只是想知道ReaderWriterLock的缺点是什么?为什么每个人都说"不要使用它,尝试使用其他类似lock声明" 这么糟糕?如果我们可以使用.NET 3.5,我肯定会使用ReaderWriterLockSlim,但ReaderWriterLock我对所有这些来自各地的警告都有点害怕.有人测量过表现还是其他什么?如果存在一些性能问题,我们可以在哪些有效负载下遇到它们?

我们在ReaderWriterLock主要目的方面有一个经典的情况,即多次读取和很少写入.使用lock语句会阻止所有读者.也许对我们来说这不是一个可怕的问题,但如果我可以使用,ReaderWriterLock我会更满意.国际海事组织介绍几台显示器确实是一个非常糟糕的主意.

.net c# multithreading readerwriterlock readerwriterlockslim

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

类中let绑定的显式类型参数

当我尝试创建类似的类时

type MyType () =
    let func<'T> () = ()
Run Code Online (Sandbox Code Playgroud)

编译器说有错误:

显式类型参数只能用于模块或成员绑定

但是MSDN说:

模块级别,类型或计算表达式中的let绑定可以具有显式类型参数.表达式中的let绑定(例如在函数定义中)不能具有类型参数.

为什么文档和编译器说不同的东西?

.net generics f#

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

无需注册即可创建自定义文化

是否可以创建自定义文化而无需在Windows中注册?每个解决方案和文档都引用CultureAndRegionInfoBuilder类,Register在创建新文化后调用.但是,自定义文化的注册会改变操作系统中可见的文化,并且需要管理员权限.

如果不可能,有两种方法可以避免注册新文化:

  1. 尽量避免使用自定义文化,即坚持标准文化.它现在可以工作,但我不知道多久.
  2. 在应用程序安装期间注册定制文 这不是选项,因为我们无法保证管理员权限,因为我们希望远程更新应用程序.

有什么办法吗?

.net localization cultureinfo

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

我可以在C#方法中使用F#的Ticked Function名称表示法吗?

在F#语言中,可以使用命名函数``Ticked function name notation``.单元测试命名非常方便.

有没有可能用C#语言做到这一点?我们总是可以使用Underscored_method_namesPascalMethodNames,但它并不容易阅读.

c# f#

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

复杂类型的SOAP序列化时出现InvalidOperationException

我遇到了SOAP序列化的问题,找到答案会很棒.这是一个非常简单的例子:

public void Test()
{
    StringBuilder sb = new StringBuilder();
    StringWriter writer = new StringWriter(sb);

    SoapReflectionImporter importer = new SoapReflectionImporter();
    XmlTypeMapping map = importer.ImportTypeMapping(typeof(A));
    XmlSerializer serializer = new XmlSerializer(map);
    serializer.Serialize(writer, new A());
}

[Serializable]
public class A
{
    public A()
    {
        BB = new B();
    }

    public int a;

    public B BB;
}
[Serializable]
public class B
{
    public int A1 { get; set; }

    public int A2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如果我运行方法Test()然后我得到以下异常: System.InvalidOperationException: Token StartElement in state Epilog …

.net c# serialization soap

6
推荐指数
2
解决办法
2521
查看次数

为Apiary.io中的每个响应指定描述

是否可以为某些请求的每个响应指定描述?假设,我们有一个请求

### Retrieve resource [GET]

    + Headers

            If-None-Match: "Version1"
Run Code Online (Sandbox Code Playgroud)

还有2个回复

+ Response 200 (application/xml)

    + Headers

            ETag: "Version2"

    + Body

            <Xml>
                <A>
                    <B />
                    <C />
                </A>
            </Xml>

+ Response 304 (application/xml)
Run Code Online (Sandbox Code Playgroud)

我想要的是指定这里的描述(请注意右下方的注释+ Response):

+ Response 200 (application/xml)
In case if the resource hasn't changed

    + Headers

            ETag: "Version2"

    + Body

            <Xml>
                <A>
                    <B />
                    <C />
                </A>
            </Xml>

+ Response 304 (application/xml)
In case if the resource has changed
Run Code Online (Sandbox Code Playgroud)

可能吗?

rest apiary.io apiblueprint

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