标签: proxy-classes

Doctrine 2中的代理是什么?

我刚读完所有的Doctrine 2文档,我开始自己的沙盒,我理解了大部分的原理,但仍有一个问题,我在文档中找不到任何完整的解释.

  1. 什么是Proxy课程?
  2. 什么时候应该在实体上使用它们?

据我所知,代理类添加了一个层,让您可以向实体添加一些其他功能,但为什么要使用代理而不是在实体类中实现方法呢?

design-patterns proxy-classes doctrine-orm

111
推荐指数
2
解决办法
3万
查看次数

首先关闭EF代码的CTP5的ProxyCreationEnabled有什么缺点

我的WCF服务可以从代码的第一个模型回归类的唯一方法是通过设置ProxyCreationEnablefalse使用下面的代码.

((IObjectContextAdapter)MyDb).ObjectContext.ContextOptions.ProxyCreationEnable = false;
Run Code Online (Sandbox Code Playgroud)

这样做的负面后果是什么?一个好处是我至少可以将这些动态类型序列化,以便可以使用WCF通过线路发送它们.

c# wcf serialization entity-framework proxy-classes

80
推荐指数
4
解决办法
5万
查看次数

在类方法中打字"this"

我知道这可能是基本的痛苦,但我很难绕过它.

class Main
{
     constructor()
     {
         requestAnimationFrame(this.update);  //fine    
     }

     update(): void
     {
         requestAnimationFrame(this.update);  //error, because this is window
     }

}
Run Code Online (Sandbox Code Playgroud)

似乎我需要一个代理,所以让我们说使用Jquery

class Main
{
     constructor()
     {
         this.updateProxy = $.proxy(this.update, this);
         requestAnimationFrame(this.updateProxy);  //fine    
     }

     updateProxy: () => void
     update(): void
     {
         requestAnimationFrame(this.updateProxy);  //fine
     }

}
Run Code Online (Sandbox Code Playgroud)

但是来自Actionscript 3的背景,我不确定这里发生了什么.抱歉,我不确定Javascript的开始位置和TypeScript结束.

updateProxy: () => void
Run Code Online (Sandbox Code Playgroud)

而且,我不相信我这样做是对的.我想要的最后一件事是我的班级大部分都有aa()函数需要访问,aProxy()因为我觉得我写两次相同的东西?这是正常的吗?

jquery proxy-classes this typescript

75
推荐指数
5
解决办法
5万
查看次数

如何测试对象是否是代理?

我想测试JavaScript对象是否是代理.琐碎的方法

if (obj instanceof Proxy) ...
Run Code Online (Sandbox Code Playgroud)

在这里不起作用,也没有遍历原型链Proxy.prototype,因为所有相关操作都得到了底层目标的有效支持.

是否可以测试任意对象是否是代理?

javascript proxy-classes ecmascript-6

35
推荐指数
9
解决办法
8365
查看次数

在php中运行时动态生成类?

这就是我想要做的事情:

$clsName = substr(md5(rand()),0,10); //generate a random name
$cls = new $clsName(); //create a new instance

function __autoload($class_name)
{
  //define that instance dynamically
}
Run Code Online (Sandbox Code Playgroud)

显然这不是我实际做的,但基本上我有一个类的未知名称,并根据名称,我想生成具有某些属性等的类.

我已经尝试过使用eval(),但它让我更适合私人和$ this->引用......

//编辑

好吧,很明显,我的短暂和甜蜜的"这就是我想做的事情"在那些可能提供答案的人中引起了巨大的冲突和惊愕.为了得到一个真正的答案,我会更详细.

我有一个验证框架,使用我维护的网站上的代码提示.每个函数都有两个定义

function DoSomething($param, $param2){
   //code
}
function DoSomething_Validate(vInteger $param, vFloat $param2){
   //return what to do if validation fails
}
Run Code Online (Sandbox Code Playgroud)

我想在我的数据库中为主键添加验证器.我不想为每个表创建一个单独的类(203).所以我的计划是做类似的事情

function DoSomething_Validate(vPrimaryKey_Products $id){ }
Run Code Online (Sandbox Code Playgroud)

__autoload将生成vPrimaryKey的子类并将table参数设置为Products.

现在开心?

php code-generation proxy-classes dynamic-compilation

29
推荐指数
5
解决办法
3万
查看次数

在一个非单例bean上修复Spring代理上的BeanNotOfRequiredTypeException?

我在从应用程序上下文中提取Spring bean时遇到问题.

当我尝试;

InnerThread instance = (InnerThread) SpringContextFactory.getApplicationContext().getBean("innerThread", InnerThread.class);
Run Code Online (Sandbox Code Playgroud)

我明白了

org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'innerThread' must be of type [com.generic.InnerThread], but was actually of type [$Proxy26]
Run Code Online (Sandbox Code Playgroud)

如果没有getBean()调用中的指定类,我会得到一个ClassCastException(您可以在下面详细介绍).

InnerThread bean被初始化为非单例,因为我需要多个实例.InnerThread类还扩展了Thread.有趣的是,这个错误出现在OuterThread中,它的设置方式与InnerThread完全相同.

我试图在下面包含所有相关的代码清单/堆栈跟踪.拥有更多Spring经验的人能告诉我这里发生了什么吗?


代码/配置清单

OuterThread.java片段:

public class OuterThread extends Thread {
    private Queue<InnerThread> createInnerThreads() {
        Queue<InnerThread> threads = new ArrayBlockingQueue();

        ApplicationContext ctx = SpringContextFactory.getApplicationContext();
        int i = 0;
        for (SearchRule search : searches) {
            logger.debug("Number of times looped " + i++);
            //Seprated lines to get a better sense of what is going on
            Object …
Run Code Online (Sandbox Code Playgroud)

java aop spring casting proxy-classes

26
推荐指数
2
解决办法
4万
查看次数

从Django中的基本模型实例返回代理模型实例的正确方法?

说我有模特:

class Animal(models.Model):
    type = models.CharField(max_length=255)

class Dog(Animal):
    def make_sound(self):
        print "Woof!"
    class Meta:
        proxy = True

class Cat(Animal):
    def make_sound(self):
        print "Meow!"
    class Meta:
        proxy = True
Run Code Online (Sandbox Code Playgroud)

让我们说我想做:

 animals = Animal.objects.all()
 for animal in animals:
     animal.make_sound()
Run Code Online (Sandbox Code Playgroud)

我想找回一系列的Woofs和Meows.很明显,我可以在原始模型中定义一个基于animal_type分叉的make_sound,但每次我添加一个新的动物类型(想象它们在不同的应用程序中)时,我必须进入并编辑make_sound函数.我宁愿只定义代理模型并让它们自己定义行为.据我所知,没有办法返回混合的Cat或Dog实例,但我想也许我可以在主类上定义一个返回cat或dog模型的"get_proxy_model"方法.

当然你可以这样做,并传递类似主键的东西,然后只做Cat.objects.get(pk = passed_in_primary_key).但这意味着对您已经拥有的数据进行额外查询,这似乎是多余的.有没有办法以有效的方式将动物变成猫或狗的实例?做我想做的事的正确方法是什么?

python django proxy-classes django-models

26
推荐指数
3
解决办法
6382
查看次数

我可以在RealProxy实例中使用反射吗?

我很确定我在某个地方缺少一些约束或警告,但这是我的情况.假设我有一个我想拥有代理的类,如下所示:

public class MyList : MarshalByRefObject, IList<string>
{
    private List<string> innerList;

    public MyList(IEnumerable<string> stringList)
    {
        this.innerList = new List<string>(stringList);
    }

    // IList<string> implementation omitted for brevity.
    // For the sake of this exercise, assume each method
    // implementation merely passes through to the associated
    // method on the innerList member variable.
}
Run Code Online (Sandbox Code Playgroud)

我想为该类创建一个代理,以便我可以拦截方法调用并对底层对象执行一些处理.这是我的实现:

public class MyListProxy : RealProxy
{
    private MyList actualList;

    private MyListProxy(Type typeToProxy, IEnumerable<string> stringList)
        : base(typeToProxy)
    {
        this.actualList = new MyList(stringList);
    }

    public static object CreateProxy(IEnumerable<string> stringList) …
Run Code Online (Sandbox Code Playgroud)

c# reflection clr proxy-classes

26
推荐指数
2
解决办法
1446
查看次数

基于ASP.NET WebAPI控件生成JS客户端

在使用RESTful API的现代Web项目中,我们经常会看到AJAX调用,就像下面的JavaScript文件一样.

$.ajax({
    type: "POST",
    url: myapp.baseUrl + 'Api/Note',
    data: ko.mapping.toJSON(note),
    contentType: 'application/json',
}).done(function (response) {
    // do something
}).fail(function (jqxhr) {
    // do something else
});
Run Code Online (Sandbox Code Playgroud)

我喜欢WebAPI,我喜欢Knockout,我喜欢将两者结合在一起.然而,这些AJAX调用非常冗长,包含了我并不感兴趣的各种细节.相反,我创建了一个围绕这些方法的包装器:

myapp.api.saveNote(note)
Run Code Online (Sandbox Code Playgroud)

但是,这仍然需要我实际编写一个包含AJAX调用的包装器.我想知道你是否真的可以生成这些包装器.本质上,我将为我的WebAPI生成一个基于JS的客户端,类似于Java和.NET如何基于WSDL生成客户端.

  1. 以前做过吗?
  2. 有没有其他方法可以将ASP.NET WebAPI和JavaScript结合在一起,而无需编写大量的AJAX样板代码?
  3. 换句话说,是否存在基于ASP.NET WebAPI等服务器端接口创建JS接口的框架?

我已经看过amplifyJS,但这只能部分地解决问题.我正在寻找一种解决方案,它实际上在我的解决方案中基于WebAPI控制器创建了一个接口.如果这不存在,我会开始修补自己.我已经有了一个想法,WebAPIClientGenerator它使用反射迭代所有ApiController的.

javascript asp.net rest proxy-classes asp.net-web-api

24
推荐指数
1
解决办法
5323
查看次数

添加对ASP.NET Web API服务的服务引用

我有一个MVC解决方案,它为Web API服务提供了一些路由.在某些情况下,我将使用简单的HTTP get从JavaScript中调用它们.在其他方面,我想从一些.NET代码中调用它们,也许是另一个MVC应用程序.

有没有办法为这些Web API端点添加服务引用,并让工具创建代理客户端和CLR类型,就像使用典型的WCF服务一样?我知道这里没有SOAP,但我确实读过它是可能的,而不是如何.

c# wcf proxy-classes asp.net-web-api

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