Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 欧芹:从ObjectDefinition创建ObjectDefinitionBuilder_Apache Flex_Parsley - Fatal编程技术网

Apache flex 欧芹:从ObjectDefinition创建ObjectDefinitionBuilder

Apache flex 欧芹:从ObjectDefinition创建ObjectDefinitionBuilder,apache-flex,parsley,Apache Flex,Parsley,我正在为Parsley开发一个框架扩展,需要在初始化上下文期间有效地克隆ObjectDefinition,并修改它的一些属性 由于ObjectDefinition本身是不可变的,因此我发现我必须跳出障碍来创建一个新的构建器,以确保安全地复制现有ObjectDefinition的属性 有没有办法从现有的ObjectDefinition安全地创建新的ObjectDefinitionBuilder 如果没有,还有什么其他方法可以用于创建ObjectDefinition克隆?我不确定是否有更优雅的解决方

我正在为Parsley开发一个框架扩展,需要在初始化上下文期间有效地克隆ObjectDefinition,并修改它的一些属性

由于ObjectDefinition本身是不可变的,因此我发现我必须跳出障碍来创建一个新的构建器,以确保安全地复制现有ObjectDefinition的属性

有没有办法从现有的ObjectDefinition安全地创建新的ObjectDefinitionBuilder


如果没有,还有什么其他方法可以用于创建ObjectDefinition克隆?

我不确定是否有更优雅的解决方案,但我最终做了这么长的工作

在我的特定情况下,我希望更改已注册对象的类,但保留其他属性。以下是我最终使用的方法:

private function cloneDefinition(objectDefinition:ObjectDefinition,replacementClass:Class):ObjectDefinition
{
        switch (true)
        {
            case objectDefinition is DefaultSingletonObjectDefinition:
                return new DefaultSingletonObjectDefinition(ClassInfo.forClass(replacementClass),objectDefinition.id,objectDefinition.registry);
            case objectDefinition is DefaultDynamicObjectDefinition:
                return new DefaultDynamicObjectDefinition(ClassInfo.forClass(replacementClass),objectDefinition.id,objectDefinition.registry);
        }
        throw new Error("Support for cloning object definitions of type " + getQualifiedClassName(objectDefinition) + " not yet supported");
}

你能告诉我你到底想用这个扩展做什么吗?你可能做得不对。