小编Mas*_*low的帖子

你能用MEF水合静电吗?

我可以在类的静态构造函数中加水吗?

public class Connect:IDTExtensibility2, IDTCommandTarget
  static Connect()
    {
        //hydrate static properties?
    }
    [Import]
    public static Action<ProjectLogicChecks> Display { get; set; }

[Export(typeof(Action<ProjectLogicChecks>))]
    private static void DisplayResults( CheckProcesses _checkResults)
{
    MessageBox.Show(_checkResults.ProjectLogicCheck.AssemblyName + " has problems=" +
                    _checkResults.ProjectLogicCheck.HasProblems);
}
Run Code Online (Sandbox Code Playgroud)

.net static-methods mef

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

为什么我的wcf客户端的操作合同不能将接口作为参数?

我有一个简单的wcf服务契约,如果我使用接口的具体实现,它可以正常工作,但如果我想使用参数中的接口而不是具体类,它会给我错误,我将在下面显示.

这是代码:

[ServiceContract]
public interface IClientUserRegistration
{
    [OperationContract]
    void RegisterClientUser(ClientUser clientUser);

    [OperationContract]
    List<ClientUser> GetUsers();
}
Run Code Online (Sandbox Code Playgroud)

如果我用IClientUser替换ClientUser,WCF测试客户端会说不支持RegisterClientUser操作,因为它使用类型System.Object.如果我用Get替换GetUsers的返回值,它表示不支持此操作,因为它使用类型System.Object [].为什么会出现这些错误?

我之所以尝试使用IClientUser,是因为我可以实现实现IClientUser接口的不同用户类型并将它们传递给RegisterClient,但如果我只能传递ClientUser,那么我必须创建一堆RegisterClient覆盖,不同类型的用户.

c# wcf wcftestclient

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

在成员初始化程序中不能使用'this'吗?

这合法吗?它是否包含隐藏的错误或缺陷?Visual Studio不会给出任何错误或警告,但ReSharper会:

/// <summary>
/// immutable tuple for two
/// </summary>
public class Pair<TValue1, TValue2> : Singleton<TValue1>
{
    public TValue2 Value2 { get; private set; }
    public Pair(TValue1 value1, TValue2 value2, Func<Pair<TValue1, TValue2>, String> toStringFunc)
        : this(value1, value2, () => toStringFunc(this)) { } //Red light

}2> : Singleton<TValue1>
Run Code Online (Sandbox Code Playgroud)

c# lambda anonymous-methods

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

如果我对某些内容有权限,我怎么能问SQL服务器?(插入,更新等)

我正在尝试为数据库层编写单元测试,以验证连接字符串的用户是否具有更新/插入/读取权限.插入/回滚会在标识列或启动触发器中创建额外的间隙.对于读取权限,对表进行选择会在sql数据库上创建加载/工作,并在统计信息中最后一次搜索表时进行更新.如何以编程方式向sql server询问当前用户对对象/表/视图/存储过程/等的权限.

我想它在某个地方的系统表中.

sql-server unit-testing

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

为什么比包含更慢?

我设计了以下测试:

var arrayLength=5000;
object[] objArray=new object[arrayLength];

for(var x=0;x<arrayLength;x++)
{
    objArray[x]=new object();
}
objArray[4000]=null;
const int TestSize=int.MaxValue;

System.Diagnostics.Stopwatch v= new Stopwatch();
v.Start();
for(var x=0;x<10000;x++)
{
    objArray.Contains(null);
}
v.Stop();
objArray.Contains(null).Dump();
v.Elapsed.ToString().Dump("Contains");

//Any ==
v.Reset();
v.Start();
for(var x=0;x<10000;x++)
{
    objArray.Any(o=>o==null);
}
v.Stop();
objArray.Any(x=>x==null).Dump();
v.Elapsed.ToString().Dump("Any");

//Any Equals
v.Reset();
v.Start();
for(var x=0;x<10000;x++)
{
    objArray.Any(obj=>object.Equals( obj,null));
}
v.Stop();
objArray.Any(obj=>object.Equals( obj,null)).Dump();
v.Elapsed.ToString().Dump("Any");
Run Code Online (Sandbox Code Playgroud)

null不存在时的结果:

  • Contains False 00:00:00.0606484
  • Any == False 00:00:00.7532898
  • Any object.Equals False 00:00:00.8431783

当元素4000存在null时:

  • Contains True 00:00:00.0494515
  • Any == True 00:00:00.5929247
  • Any object.Equals True 00:00:00.6700742

当元素10出现null时: …

c# performance

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

TfsBuilds:drop location解决了什么?

自从工作流程构建出来以来,我一直在使用TFS构建.我从未见过使用以下任何一项的需要或愿望: 在此输入图像描述

  • Copy Build output to the server
    • 什么服务器?什么目录?
  • `将构建输出复制到以下drop文件夹(UNC路径,例如\ server\share):
  • 流程 - 高级 - Private Drop Location

我在高级银行自动化构建中使用它,我已经使用了tfs build,msbuild和cc.net.

它是设置/p:WebProjectOutputDir还是/p:DeployOnBuild=true不设置?这是诊断 - >查看日志选项始终显示为灰色的原因吗?在此输入图像描述

drop文件夹的目的是什么?

tfsbuild

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

如何满足编译器消除警告0052?

我希望满足编译器警告级别5.所以我在一个文件中有32个警告FS0052 已复制该值以确保此操作不会改变原始值

我已经关注了似乎与此警告相关的唯一SO帖子,但由于我的类型是由Microsoft生成的类型提供程序,因此我不能只是将字段标记为可变以安静警告.加上一些实际上不应该变异的可变东西看起来像是黑客而不是修复.

例子:

  1. 可空 .GetValueOrDefault()
  2. 可空 .ToString()
  3. GUID .toString()
  4. 我相信任何类型的struct方法调用

从正确的功能角度处理此警告的建议方法是什么?

f# compiler-warnings

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

扩展F#列表模块

我一直在为一些F#模块添加一些方便的方法,比如List.

type Microsoft.FSharp.Collections.FSharpList<'a> with          //'
    static member iterWhile (f:'a -> bool) (ls:'a list) = 
        let rec iterLoop f ls = 
            match ls with
            | head :: tail -> if f head then iterLoop f tail
            | _ -> ()
        iterLoop f ls
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以添加突变?我知道List是不可变的,那么如何向Ref类型List添加一个可变方法.像这样的东西.

type Ref<'a when 'a :> Microsoft.FSharp.Collections.FSharpList<'a> > with //'
    member this.AppendMutate element =
        this := element :: !this
Run Code Online (Sandbox Code Playgroud)

或者是否有某种方法来约束泛型只接受一个可变的?

extension-methods f# module list

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

将WMI Win32_OperatingSystem InstallDate转换为mm/dd/yyyy格式(C# - WPF)

我想知道你如何将日期和时间从20100131022308.000000-360转换.

我一直试图弄清楚它一段时间,我似乎无法到达任何地方.

我在WPF应用程序中使用C#.

c# wmi .net-3.5

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

为什么 CORS 似乎不适用于 POST?

Mozilla 自己的规范说简单GETPOST应该是原生的 CORS 没有预检,但到目前为止POST我所做的每一次尝试都导致OPTIONS标题消失。当我更改它POST以获取代码时,会立即发送正确的GET请求,因此跨站点部分工作正常。

这是我在 Firefox 中所做的精简示例:

 var destinationUrl = 'http://imaginarydevelopment.com/postURL';
 var invocation = new XMLHttpRequest();
            if (invocation) {
                invocation.open('POST', destinationUrl, true);
                //tried with and without this line
                //invocation.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

                invocation.onreadystatechange = (function Handler() {
                if (invocation.readyState == 4)
                        alert('Request made');
                });
                invocation.send(/* tried with and without data*/);
            }
Run Code Online (Sandbox Code Playgroud)

这是我已经在 chrome 和 IE 中工作的内容:

var destinationUrl = 'http://imaginarydevelopment.com/postURL';
var destination = { url: destinationUrl, type: 'POST', …
Run Code Online (Sandbox Code Playgroud)

w3c xmlhttprequest cors

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