小编mt_*_*erg的帖子

16
推荐指数
2
解决办法
1692
查看次数

Web Api 2路由属性的全局路由前缀?

我想通过两种方式揭露公司的api:

  • api.company.com(纯WebApi网站)

  • company.com/api(将WebApi添加到现有的MVC5公司站点)

因此,我将模型/控制器放在一个单独的程序集中,并从两个网站引用它.

另外,我使用路由属性:

[RoutePrefix("products")]
public class ProductsController : ApiController
Run Code Online (Sandbox Code Playgroud)

现在,上面的控制器可以通过以下方式访问:

  • api.company.com/products哪个好

  • company.com/products我想更改为company.com/api/products

有没有办法继续使用路由属性和设置MVC项目,所以它为所有路由添加"api"?

asp.net-mvc asp.net-web-api asp.net-web-api-routing

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

在C#中使用Finalizer的好样本

当我在C#中阅读一些关于内存管理的文章时,我对Finalizer方法感到困惑.

有许多与之相关的复杂规则.例如,没有人知道终结器何时被调用,即使ctor中的代码抛出,他们也会调用,CLR不保证在程序关闭时调用所有终结器等.

对于什么终结器可以在现实生活中使用?

我发现的唯一一个例子是程序在GC启动时发出蜂鸣声.

您是否在代码中使用了Finalizer并且可能有一些好样本?

UPD:

当开发人员想要确保某些类始终通过IDisposable正确处理时,可以使用终结器.(链接 ;感谢Steve Townsend)

c# clr garbage-collection memory-management finalizer

10
推荐指数
2
解决办法
1141
查看次数

ModelForm is_valid()在单元测试期间始终返回false

我有一个简单的Django代码.

models.py文件中有我的模型和表单:

from django.db import models
from django.forms import ModelForm

class Supplier(models.Model):
    name = models.CharField(max_length=55)
    comment = models.TextField(blank=True)

class SupplierForm(ModelForm):
    class Meta:
        model = Supplier
Run Code Online (Sandbox Code Playgroud)

还有我的test.py:

from django.test import TestCase
from mysite.myapp.models import Supplier, SupplierForm

class SupplierTest(TestCase):
    def test_supplier(self):
        supplier = Supplier(name="SomeSupplier")
        supplier_form = SupplierForm(instance = supplier)
        self.assertEquals(supplier_form.is_valid(), True)
Run Code Online (Sandbox Code Playgroud)

当我通过manage.py开始测试时,is_valid()总是返回False,但我期望True.

在这种情况下,失败的原因是什么?is_valid()?我使用Django 1.3.

django validation unit-testing django-forms

10
推荐指数
1
解决办法
3098
查看次数

JavaScript:好的部件名称/字符串铁路图令人困惑

我开始阅读JavaScript:The Good Parts一书,并在第一页(如果确切地说是7和9)被铁路图弄得混乱.

有名称和字符串文字的图表.(你可以在这里看到图表)

我知道JavaScript中的名称可以从字母开始,也可以用下划线或"$"符号开头.按照书的图表,它只能从字母开始.

对于字符串文字,假设您想要表示字符串:"\\".
在图表之后,它是不可能的(似乎在"转义字符"之后,"除了"之外的任何unicode字符和\和contol"是必需的.

这些是书中的错误吗?或者我想念什么?

javascript

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

两种调用默认构造函数的方法

我有以下代码:

struct B
{
 //B() {}
 int x;
 int y;
};

void print(const B &b) 
{
 std::cout<<"x:"<<b.x<<std::endl;
 std::cout<<"y:"<<b.y<<std::endl;
 std::cout<<"--------"<<std::endl;
}

int main()
{
 B b1 = B(); //init1
 B b2; //init2

 print(b1);
 print(b2);

 return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我启动程序(vs2008,调试)时,我有以下输出:

x:0
y:0
--------
x:-858993460
y:-858993460
--------
Run Code Online (Sandbox Code Playgroud)

如您所见,b1.x和b1.y的值为0.为什么?init1和init2有什么区别?

当我取消注释B构造函数时,我有以下输出:

x:-858993460
y:-858993460
--------
x:-858993460
y:-858993460
--------
Run Code Online (Sandbox Code Playgroud)

有人可以解释这种行为的原因吗?Tnx提前.

c++ constructor

5
推荐指数
2
解决办法
4903
查看次数