小编Mar*_*ijn的帖子

将图像转换为二进制?

我有一个图像(.png格式),我希望这张图片转换为二进制.

如何使用C#完成此操作?

c#

9
推荐指数
3
解决办法
8万
查看次数

C#使用selectedValue设置组合项

我正在动态创建一个这样的组合框:

public Control GenerateList(Question question)
{
    // Get a list with answer possibilities
    List<QuestionAnswer> answers = question.GetAnswers();

    // Get a collection of given answers
    Collection<QuestionnaireAnswer> givenAnswers = question.GetFilledAnswers();

    ComboBox cmb = new ComboBox();
    cmb.Name = "cmb";
    cmb.DataSource = answers;
    cmb.DisplayMember = "Answer";
    cmb.ValueMember = "Id";

    // Check an answer is given to the question
    if (givenAnswers != null && givenAnswers.Count > 0)
    {
        cmb.SelectedValue = givenAnswers[0].AnswerId;

    }

    cmb.DropDownStyle = ComboBoxStyle.DropDownList;
    cmb.SelectedIndexChanged += new EventHandler(cmb_SelectedIndexChanged);
    cmb.Leave += new EventHandler(cmb_Leave);

    return cmb; …
Run Code Online (Sandbox Code Playgroud)

c# combobox winforms

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

C#如何压缩.ashx内容?

在我的Web应用程序中,我使用ashx文件将文件写入浏览器.我注意到.ashx文件没有压缩,但仅限于.aspx文件.

是否可以压缩.ashx?如果有可能,怎么样?

目前我使用global.asax来处理压缩:

<%@ Application Language="C#" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.IO.Compression" %>

<script runat="server">
void Application_PreRequestHandlerExecute(object sender, EventArgs e)
{
    HttpApplication app = sender as HttpApplication;
    string acceptEncoding = app.Request.Headers["Accept-Encoding"];
    Stream prevUncompressedStream = app.Response.Filter;

    if (!(app.Context.CurrentHandler is Page ||
        app.Context.CurrentHandler.GetType().Name == "SyncSessionlessHandler") ||
        app.Request["HTTP_X_MICROSOFTAJAX"] != null)
        return;

    if (acceptEncoding == null || acceptEncoding.Length == 0)
        return;

    acceptEncoding = acceptEncoding.ToLower();

    if (acceptEncoding.Contains("deflate") || acceptEncoding == "*")
    {
        // defalte
        app.Response.Filter = new DeflateStream(prevUncompressedStream,
            CompressionMode.Compress);
        app.Response.AppendHeader("Content-Encoding", "deflate");
    } else …
Run Code Online (Sandbox Code Playgroud)

c# asp.net

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

如何执行行锁?

我想锁定一条记录,然后没有人可以对该记录进行更改.当我释放锁定时,人们可能会更改记录.

在此期间锁定记录时,我想向用户显示记录已被锁定且不允许更改的警告.

我怎样才能做到这一点?

我已经尝试了所有的IsolationLevel级别,但它们都没有我想要的行为.某些隔离级别会等到锁定释放后再进行更改.我不希望这样,因为在锁定记录时不允许更新.

如何锁定记录并拒绝所有更改?

我使用SQL Server 2008

c# sql locking sql-server-2008

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

使用现有对象插入新对象

我是EF 4的新手,这是我到目前为止所做的:

  • 根据我的数据库创建edmx文件
  • 为我的对象(PO​​CO)创建代码生成.现在我有了一个model1.tt,扩展后我会看到我的课程
  • 基于IRepository为每个类创建一个存储库

现在,我正在处理两个对象,A和B.对象A具有类型B的属性.在我的winform中,我有一个组合填充了类型B的对象.当按下保存按钮时,A类的新实例是创建并设置所有属性.对象B属性设置如下:

objectA.myObjectB = (objectB)cmbBObjects.selectedItem;
Run Code Online (Sandbox Code Playgroud)

然后我为objectA创建一个存储库并调用save方法.在这个保存方法中,我有这个代码±

public bool Save(ObjectA obj)
{
  using(MyContext context = new MyContext())
  {
    context.objectAs.AddObject(obj);
    context.SaveChanges();
  }
}
Run Code Online (Sandbox Code Playgroud)

这段代码确实为数据库保存了一个新条目,但它也为对象B创建了一个新记录!我不想要这个,因为对象B已经存在于数据库中!(我从组合框中选择了这个).

这就是我填充组合框的方式:

在objectB存储库中:

public IList<ObjectB> GetAll()
{
    using(MyContext context = new MyContext())
    {
        IList<ObjectB> objects = context.objectBs.ToList();
        return objects;
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的形式:

ObjectBRepository rep = new ObjectBRepository();
IList<ObjectB> objects = rep.GetAll;

cmbBObjects.Datasource = objects;
// etc..
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如何在不为objectB创建新记录的情况下保存对象A?

.net c# entity-framework entity-framework-4

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

Angular:为什么我的事件被处理了两次?

我有三个控制器:主,产品,客户.控制器A是我"主页"的一部分.控制器B和C取决于位置.

控制器主要:

var MainController = function ($scope, $location, $rootScope, ToolbarService) {
    $scope.addClicked = function () {
        ToolbarService.onAddButtonClick();
    };
};

app.controller({ MainController: MainController });
Run Code Online (Sandbox Code Playgroud)

产品:

var ProductController = function ($scope) {

    $scope.$on('handleAddButtonClick', function () {
        alert('Add product');
    });
};
app.controller({ ProductController: ProductController });
Run Code Online (Sandbox Code Playgroud)

顾客:

var CustomerController = function ($scope) {

    $scope.$on('handleAddButtonClick', function () {
        alert('Add customer');
    });
};
app.controller({ CustomerController: CustomerController});
Run Code Online (Sandbox Code Playgroud)

toolbarService:

app.service({
    ToolbarService: function ($rootScope) {
        return {
            onAddButtonClick: function () {
                $rootScope.$broadcast('handleAddButtonClick');
            }
        };
    }
});
Run Code Online (Sandbox Code Playgroud)

当我的位置是#/products并且 …

javascript angularjs

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

OAuth与OWIN如何在MVC5中运行?

我试图理解OAuth是如何工作的,但感觉就像是一个巨大的魔术表演,我不喜欢这样.

我创建了一个新的MVC5项目并启用了facebook身份验证.这一切都运行正常,但是,我试图了解这是如何工作的.

这是我迷路的部分.想象一下,用户想要第一次登录.这个方法是执行的:

    public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
    {
        var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
        if (loginInfo == null)
        {
            return RedirectToAction("Login");
        }

        // Sign in the user with this external login provider if the user already has a login
        var result = await SignInManager.ExternalSignInAsync(loginInfo, isPersistent: false);
        switch (result)
        {
            case SignInStatus.Success:
                return RedirectToLocal(returnUrl);
            case SignInStatus.LockedOut:
                return View("Lockout");
            case SignInStatus.RequiresVerification:
                return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = false });
            case SignInStatus.Failure:
            default:
                // If the user does not have …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc oauth facebook-oauth

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

C#使用new []

我有一个关于使用的问题new[].

想象一下:

Object.SomeProperty = new[] {"string1", "string2"};
Run Code Online (Sandbox Code Playgroud)

SomeProperty需要一个字符串数组.

我知道这段代码会起作用.但我想知道它在幕后做了什么.是否new[]创建了类的实例,object并在SomeProperty其中将其自动转换为string对象?

谢谢

c# new-operator

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

如何防止在Angular指令之间共享范围?

我的所有指令都使用相同的范围,我希望我的指令可以自己操作.

指示:

app.directive('headerSort', function () {
    return {
        restrict: 'A',
        controller: function ($scope, $element, $attrs) {
            $scope.caption = $attrs.caption;

            $scope.doSort = function () {
                $scope.orderField = $attrs.headerSort;
                $scope.reverse = !$scope.reverse;
            };
        },
        template: '<div data-ng-click="doSort();">' +
                    '{{caption}}' +
                    '<i class="icon-sort"></i>' +
                  '</div>'
    };
});
Run Code Online (Sandbox Code Playgroud)

HTML:

<th data-header-Sort="FullName" data-caption="Full name"></th>
<th data-header-Sort="FirsName" data-caption="First name"></th>
<th data-header-Sort="Age" data-caption="Age"></th>
Run Code Online (Sandbox Code Playgroud)

结果是所有列都具有值'Age'并按Age排序.我当然希望每列都对它自己的列进行排序.我怎样才能做到这一点?

更新:忘了提及,orderFieldreverse用于ng-repeat | orderBy:

<tbody id="customerRows" data-ng-repeat="customer in customers | orderBy:orderField:reverse">
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-directive angularjs-scope

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

为什么当从另一个对象复制对象时,Angular不会数据绑定数据?

我创建了一个简单的jsfiddle来说明我的问题:

小提琴

HTML:

<div ng-controller="MyCtrl">   
    <div ng-repeat="p in products">
        <span ng-click="overwrite(p)">{{ p.id }}: {{ p.name }}</span>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

var myApp = angular.module('myApp',[]);

function MyCtrl($scope) {

    var products = [{id:1, name:'first'}, {id:2, name:'second'}];
    $scope.products = products;

    var prod = {id: 3, name:'third'};

    $scope.overwrite = function(p){
        p.id = 4;
        p.name = 'forth';

        p = prod; // this doesn't work nor does angular.copy(prod)
    }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,当我手动设置属性时,值是bind.但是当我覆盖一个对象时,没有任何反应.这怎么可能?当我想要恢复其原始状态的对象时,我该怎么办?

想象一下,我使用创建备份对象var productBackup = angular.copy(product).然后我对原始产品进行了更改,之后我决定取消更改.我想用这个来做product = productBackup.但这不起作用!在这种情况下,我是否需要像这样手动设置所有属性?

product.id = productBackup.id;
product.name = productBackup.name; …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

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