小编Ada*_*kis的帖子

Thread.CurrentPrincipal.Identity.Name从WPF为空

编辑

简单的问题是,如何Thread.CurrentPrincipal.Identity.Name在WPF中获得当前用户登录?

结束编辑

我正在尝试调用现有方法(不是任何类型的服务;只是POCO中的方法),它使用以下方法检索当前用户:

Thread.CurrentPrincipal.Identity.Name

这段代码是由其他人编写的,并且(可能)与他的ASP.NET MVC项目一起工作.我试图从WPF调用相同的方法,而Name现在是空白的.

我能做些什么吗?

c# wpf

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

AutoMapper - 为何使用Map over DynamicMap?

假设您使用AutoMapper进行映射的对象不需要自定义映射,那么执行此操作是否有意义:

Mapper.CreateMap<Src, Dest>(); 
// ....
Mapper.Map(SrcObject, DestObj);
Run Code Online (Sandbox Code Playgroud)

如果不需要自定义映射,上述方法是否只需使用DynamicMap就可以获得任何东西,而无需任何先前的配置?

Mapper.DynamicMap(SrcObject, DestObj);
Run Code Online (Sandbox Code Playgroud)

我也明白,DynamicMap需要的时候你映射匿名类型,但我想咨询一下是否DyanmicMap是以往任何时候都不能优先用于需要没有自定义映射静态类型.

c# automapper

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

将表达式传递给linq的Select

这是linq-to-sql

我有很多不同的类都在做相同的查询,但投影结果略有不同.理想情况下,我希望能够在一个地方进行查询,并将投影传递给Select方法.它适用于具体类型:

public void GetResults() {
    var junk = db.SiteProducts.Select(Project());
}

public Expression<Func<DbEntities.SiteProduct, string>> Project() {
    return p => p.ProductAlert;
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试返回匿名类型时,它会失败

public void GetResults() {
    var junk = db.SiteProducts.Select(Project());
}

public Expression<Func<DbEntities.SiteProduct, TResult>> Project<TResult>() {
    return p => new { p.ProductAlert };
}
Run Code Online (Sandbox Code Playgroud)

我完全理解为什么泛型类型推断在第二种情况下失败了.但是有没有从头开始制作我自己的表达式的技巧 - 我错过了可以让这个工作?

c# linq linq-to-sql devforce

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

NHibernate懒惰="额外"

关于究竟lazy ="extra"能够做什么,有没有一个很好的解释?

我看到的所有帖子都只是重复这样一个事实:它将引用转换MyObject.ItsCollection.Count为select count(*)查询(假设它们尚未加载).

我想知道它是否能够提供更强大的功能,比如MyObject.ItsCollection.Any(o => o.Whatever == 5)变成SELECT ...EXISTS查询.

文档的第18.1节仅涉及它.我不是NH开发人员,因此我无法真正尝试它并观看SQL事件探查器而不需要做一些工作来设置所有内容; 我只是在寻找某种参考来描述这个功能的功能.

谢谢!

nhibernate

13
推荐指数
2
解决办法
5382
查看次数

投射一个盒装价值

为什么不能将int那个被装箱的东西直接投入double

object o = 12;
double d = (double)o;
Run Code Online (Sandbox Code Playgroud)

抛出无效的强制转换异常.相反,它似乎必须首先被投射为int,然后再投射double.

object o = 12;
double d = (double)(int)o;
Run Code Online (Sandbox Code Playgroud)

我确信这个简单的答案是"因为这就是拳击的工作原理"但我希望有人可能会在这里说清楚.

c# casting

13
推荐指数
2
解决办法
1048
查看次数

使用ExpressionTree分配属性

我正在尝试将属性赋值作为表达式树传递给方法.该方法将调用表达式以便正确分配属性,然后嗅出刚刚分配的属性名称,以便我可以引发PropertyChanged事件.我的想法是,我希望能够在我的WPF ViewModel中使用超薄自动属性,并且仍然会触发PropertyChanged事件.

我是ExpressionTrees的无知者,所以我希望有人能指出我正确的方向:

public class ViewModelBase {
    public event Action<string> PropertyChanged = delegate { };

    public int Value { get; set; }

    public void RunAndRaise(MemberAssignment Exp) {
        Expression.Invoke(Exp.Expression);
        PropertyChanged(Exp.Member.Name);
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是我不知道怎么称呼它.编译器拒绝了这种天真的尝试,原因是我肯定对任何能够回答这个问题的人都很明显:

        ViewModelBase vm = new ViewModelBase();

        vm.RunAndRaise(() => vm.Value = 1);
Run Code Online (Sandbox Code Playgroud)

编辑

谢谢@svick的完美答案.我移动了一个小东西,并把它变成了一个扩展方法.以下是单元测试的完整代码示例:

[TestClass]
public class UnitTest1 {
    [TestMethod]
    public void TestMethod1() {
        MyViewModel vm = new MyViewModel();
        bool ValuePropertyRaised = false;
        vm.PropertyChanged += (s, e) => ValuePropertyRaised = e.PropertyName == "Value";

        vm.SetValue(v => v.Value, 1);

        Assert.AreEqual(1, vm.Value);
        Assert.IsTrue(ValuePropertyRaised); …
Run Code Online (Sandbox Code Playgroud)

c# expression-trees

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

你如何在用java编写的selenium webdriver程序中使用firefox插件?

我试图运行一个selenium脚本,点击我的工具栏中的一个firefox插件.是否有可能做到这一点?

java webdriver firefox-addon selenium-webdriver

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

将graphQL片段添加到架构,并且可用于所有查询

以下在graphiQL中正确执行

fragment BookGridFields on Book {
  _id
  title
}

{
  allBooks {
    ...BookGridFields
  }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,可以在我的架构中指定片段,就在我的Book类型定义的下面,就像这样

type Book {
  _id: String
  title: String
  pages: Int
  weight: Float
  authors: [Author]
}

fragment BookGridFields on Book {
  _id
  title
}
Run Code Online (Sandbox Code Playgroud)

所以我可以像这样运行查询

{
  allBooks {
    ...BookGridFields
  }
}
Run Code Online (Sandbox Code Playgroud)

无需将片段定义为我的查询的一部分.

目前上述错误有

未知片段\"BookGridFields \"

javascript graphql graphql-js

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

向Javascript对象添加函数的不同方法

在Javascript中,这两种向对象添加函数的方法有什么区别吗?出于任何原因,一个人更好吗?

function ObjA() {
    this.AlertA = function() { alert("A"); };
}
ObjA.prototype.AlertB = function() { alert("B"); };

var A = new ObjA();
A.AlertA();
A.AlertB();
Run Code Online (Sandbox Code Playgroud)

javascript

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

jQuery - 有以类开头的类

什么是获得所有以任何类开头的div的最佳方法input?换句话说,a并且b应该从什么下方,但不退还c.

<div id="a" class="input1 foo"></div>
<div id="b" class="foo input2"></div>
<div id="c" class="xinput3 foo"></div>
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,在这里接受的表面方式是做$("div[class^='input']");但当然是错过了b.当然$("div[class*='input']");会给出误报c.

我能想到的最好的就是这种怪异

function getAllInputDivs() {
    return $("div").filter(function (i, currentDiv) {
        return $.grep($(currentDiv).attr("class").split(" "), function (val) {
            return val.substr(0, "input".length) === "input";
        }).length > 0;
    });
}
Run Code Online (Sandbox Code Playgroud)

有更干净的方式吗?这是上面的工作小提琴

javascript jquery

12
推荐指数
2
解决办法
7090
查看次数