Apache flex 欧芹:从ObjectDefinition创建ObjectDefinitionBuilder
我正在为Parsley开发一个框架扩展,需要在初始化上下文期间有效地克隆ObjectDefinition,并修改它的一些属性 由于ObjectDefinition本身是不可变的,因此我发现我必须跳出障碍来创建一个新的构建器,以确保安全地复制现有ObjectDefinition的属性 有没有办法从现有的ObjectDefinition安全地创建新的ObjectDefinitionBuilderApache flex 欧芹:从ObjectDefinition创建ObjectDefinitionBuilder,apache-flex,parsley,Apache Flex,Parsley,我正在为Parsley开发一个框架扩展,需要在初始化上下文期间有效地克隆ObjectDefinition,并修改它的一些属性 由于ObjectDefinition本身是不可变的,因此我发现我必须跳出障碍来创建一个新的构建器,以确保安全地复制现有ObjectDefinition的属性 有没有办法从现有的ObjectDefinition安全地创建新的ObjectDefinitionBuilder 如果没有,还有什么其他方法可以用于创建ObjectDefinition克隆?我不确定是否有更优雅的解决方
如果没有,还有什么其他方法可以用于创建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");
}
你能告诉我你到底想用这个扩展做什么吗?你可能做得不对。