小编Ped*_*dro的帖子

在Lin和Where调用中重用Linq到实体的表达式<Func <T,TResult>

假设我有一个实体对象定义为

public partial class Article  
{  
    public Id
    {
        get;
        set;
    }  
    public Text
    {
        get;
        set;
    }  
    public UserId
    {
        get;
        set;
    }  
}
Run Code Online (Sandbox Code Playgroud)

根据文章的某些属性,我需要确定某个用户是否可以删除该文章.所以我添加了一个静态方法来进行检查.就像是:

public partial class Article  
{  
    public static Expression<Func<Article, bool>> CanBeDeletedBy(int userId)
    {  
        //Add logic to be reused here
        return a => a.UserId == userId;
    }  
}
Run Code Online (Sandbox Code Playgroud)

所以现在我能做到

using(MyEntities e = new MyEntities())  
{
    //get the current user id
    int currentUserId = 0;

    e.Articles.Where(Article.CanBeDeletedBy(currentUserid));  
}
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.现在我想在执行Select时重用CanBeDeletedBy中的逻辑,例如:

using(MyEntities e = new MyEntities())  
{
    //get the current …
Run Code Online (Sandbox Code Playgroud)

c# linq lambda delegates

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

GnuPG/PGP和SSL:共享相同的私钥?

我正试图理清我对数字签名和加密的使用.我知道有两种主要方法可以做到这一点:PGP方式和SSL方式.

我想知道是否可以为SSL证书和GnuPG使用相同的私钥,前提是这是一个RSA 2048位密钥.

我已经有一个由CA签名的SSL证书,所以我希望将该证书的私钥用作GnuPG主私钥.

我知道我们不能以这种方式在SSL和GnuPG之间进行断言,但我想只有一个私钥(因此只需要保护一个数据)

谢谢

encryption ssl gnupg openpgp public-key-encryption

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

在MVC5中输出错误路径的Bundle.IncludeDirectory

我将MVC 4项目升级到MVC 5,作为升级到VS2013的一部分,我在Bundles和Minification中遇到了一个奇怪的行为.然后我尝试了一个新的MVC 5项目,也有同样的问题.这就是我正在做的事情:

从新的MVC 5项目开始,添加以下文件

app\0.js
app\a
app\a\b
app\a\c
app\a\b\1.js
app\a\c\6.js
app\a\c\d
app\a\c\e
app\a\c\d\2.js
app\a\c\d\3.js
app\a\c\d\4.js
app\a\c\e\5.js
Run Code Online (Sandbox Code Playgroud)

然后在我的BundleConfig中添加

bundles.Add(new ScriptBundle("~/bundles/app")
    .IncludeDirectory("~/app", "*.js", true));
Run Code Online (Sandbox Code Playgroud)

在我看来:

@Scripts.Render("~/bundles/app")
Run Code Online (Sandbox Code Playgroud)

现在,当我浏览到Bundling和Minification Off的页面时,这就是渲染的内容:

<script src="/app/0.js"></script>
<script src="/app/1.js"></script>
<script src="/app/6.js"></script>
<script src="/app/2.js"></script>
<script src="/app/3.js"></script>
<script src="/app/4.js"></script>
<script src="/app/5.js"></script>
Run Code Online (Sandbox Code Playgroud)

请注意,所有文件都在/app,并且子目录在此过程中丢失.

我已经在MVC 4项目中使用了很长时间没有任何问题.

Microsoft.AspNet.Web.Optimization包是1.1.1.

有没有人经历过这个?

asp.net-mvc bundling-and-minification asp.net-mvc-5

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

java.lang.ClassCastException:android.app.Application无法强制转换为com.xxx.xxx.MyApplication

我在Play商店发布的应用程序崩溃很少发生(<1%),我找不到原因.

应用程序在启动时崩溃,在Play商店控制台中,我使用以下堆栈跟踪记录崩溃:

    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
    at android.app.ActivityThread.-wrap12(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6077)
    at java.lang.reflect.Method.invoke(Method.java)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to com.xxx.xxx.MyApplication
    at com.xxx.xxx.activities.BaseActivity.getApplicationComponent(BaseActivity.java:83)
    at com.xxx.xxx.views.activities.BaseActivity.onCreate(BaseActivity.java:65)
    at com.xxx.xxx.views.activities.startup.StartupActivity.onCreate(StartupActivity.java:78)
    at android.app.Activity.performCreate(Activity.java:6664)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
    ... 9 more
Run Code Online (Sandbox Code Playgroud)

崩溃方法getApplicationComponent如下所示:

public ApplicationComponent getApplicationComponent() {
    return ((MyApplication) getApplication()).getApplicationComponent();
}
Run Code Online (Sandbox Code Playgroud)

清单引用了我的自定义应用程序类:

<application
        android:name=".MyApplication"
Run Code Online (Sandbox Code Playgroud)

该应用程序安装在几十万个设备(相同的apk),它的工作完美.

到目前为止,这似乎只发生在运行Nougat的一些Nexus 5X/6P设备上.

我没有想法.有没有人知道为什么这只会发生几次?

编辑

MyApplication类:

public class MyApplication extends Application {
    private ApplicationComponent applicationComponent;

    @Override
    public void onCreate() {
        super.onCreate();

        this.applicationComponent …
Run Code Online (Sandbox Code Playgroud)

android

6
推荐指数
0
解决办法
1161
查看次数

在 Git 工作流程中混合私有和公共存储库

我对 Git 相当陌生,我正在尝试设置工作区和工作流程。有人可以给我一些建议吗?我相信使用 Git 一切皆有可能,但我想遵循这里的规则。

因此,我使用 Github 托管一个公共存储库和一个私有存储库。公共存储库是我项目的官方代码,私有存储库仅供我使用,因此我可以在不同的计算机上工作。

我想尽可能多地在我的私人存储库上工作。在这里我有一些分支来研究一些想法。

当我想要发布某些内容时,我想从我的私有存储库中选择一些提交并将它们合并到公共存储库中。我还希望我的公开更改显示为一次提交,没有任何历史记录。

我一直在阅读,我认为 rebase 是向公众发送内容时的最佳选择,这样我就可以选择并压缩我想要的内容。

你们有什么感想?这可行吗?或者有什么重大问题?我想我可以尝试一下,但我不想陷入一开始就不正确的事情中。

git

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