小编don*_*tta的帖子

PHP中的静态方法

为什么在PHP中你可以通过某个类的实例访问静态方法,但不仅仅是通过类型名称?

更新:我是.net开发人员,但我也与PHP开发人员合作.最近我发现了关于从实例调用的静态方法的这一刻,并且无法理解为什么它可以是有用的.

例:

class Foo
{
    public static Bar()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

我们可以接受这样的方法:

var $foo = new Foo();
$foo.Bar(); // ??????
Run Code Online (Sandbox Code Playgroud)

php static-methods

22
推荐指数
3
解决办法
6万
查看次数

ie9重定向后丢失cookie

我有一个iframe:

  1. 向服务器发送帖子请求
  2. 服务器返回302并设置cookie
  3. 浏览器不保存cookie但是发帖子(不知道为什么不能获得,但没关系)
  4. 来自#3的cookie丢失了

我找到了一个解决方法:

Response.AddHeader("Pragma", "no-cache");
Response.AddHeader("Cache-Control", "no-cache");
Run Code Online (Sandbox Code Playgroud)

但它没有帮助.mb任何人都知道什么可以解决这个问题?

cookies redirect internet-explorer-9

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

c#锁定泛型函数

我有这样一堂课:

public static class CacheManager
{
    static object lockObject = new object();

    static MemcachedClient CacheObject
    {
        get
        {
            if (!MemcachedClient.Exists(Settings.Default
                .CacheInstanceName))
            {
                MemcachedClient.Setup(Settings.Default
                    .CacheInstanceName,
                        new string[] {Settings.Default
                            .CacheHostAddress});
            }
            //
            //
            return MemcachedClient.GetInstance(Settings
                .Default.CacheInstanceName);
        }
    }

    public static List<TData> Get<TData>(string key, Func<List<int>> getListCallback,
        Func<int, TData> getItemCallback) where TData : class
    {
        var result = new List<TData>();
        //
        //
        var list = CacheObject.Get(key);
        if (list == null)
        {
            lock (lockObject)
            {
                list = CacheObject.Get(key);
                if (list == null)
                {
                    list = …
Run Code Online (Sandbox Code Playgroud)

c# generics multithreading locking

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

多个线程同时读取静态变量

我的问题可能是新手或重复,但我想知道当几个线程同时尝试读取静态变量时会发生什么.我现在对同步并不感兴趣,我只是想知道他们是立即还是轮流阅读?

更新:我的问题更多的是物理领域或类似的那样(=如果它是线程读取变量的同一时刻.

.net c# static multithreading static-variables

5
推荐指数
1
解决办法
5656
查看次数

使用视图模型时的 asp.net mvc 验证

最近我决定使用视图模型而不是 EF EntityObjects。我确信 GET 请求不会有问题,但我想知道如何处理创建和更新操作。我已经阅读了很多讨论并决定我会以这种方式行事。但出现了另一个问题:

1) 当我使用带有注释的 EF EntityObjects 时,验证逻辑存储在一个地方,但是如果我在不同的项目中有不同的视图模型,那么我将不得不复制验证规则。这不是违反了 DRY 原则吗?

2)我已经阅读了几篇关于视图模型和验证的帖子,其中人们建议验证视图模型中的输入和域模型中的业务规则,但我无法意识到如果我的操作将视图模型作为参数,我如何调用域模型中定义的验证:

public class MyDomainModel : IValidatableObject
{
    public string Title;

    // validation of business rules
}

public class MyViewModel
{
    [Required]
    public string Title;
}

public ActionResult Edit(MyViewModel item)
{
    if (ModelState.IsValid) // MyViewModel's rules are validated not MyDomainModel's
    {
        ...
}
Run Code Online (Sandbox Code Playgroud)

validation asp.net-mvc viewmodel

5
推荐指数
1
解决办法
4113
查看次数