标签: circular-reference

从带有构造函数“Subscriber”的对象开始将循环结构转换为 JSON

当我尝试订阅我的可观察对象时,出现以下错误。我不太确定为什么,因为我没有在代码中使用任何类型的 Stringify (据我所知)。它只是从 api 获取 JSON 数组。

\n
 ERROR TypeError: Converting circular structure to JSON\n        --> starting at object with constructor 'Subscriber'\n        |     property '_subscriptions' -> object with constructor 'Array'\n        |     index 0 -> object with constructor 'MapSubscriber'\n        --- property '_parentOrParents' closes the circle\n        at JSON.stringify (<anonymous>)\n        at JsonPipe.transform (common.js:4752)\n        at Module.\xc9\xb5\xc9\xb5pipeBind1 (core.js:25782)\n        at TicketlistComponent_Template (ticketlist.component.html:4)\n        at executeTemplate (core.js:9600)\n        at refreshView (core.js:9466)\n        at refreshComponent (core.js:10637)\n        at refreshChildComponents (core.js:9263)\n        at refreshView (core.js:9516)\n        at refreshEmbeddedViews (core.js:10591)\n
Run Code Online (Sandbox Code Playgroud)\n

它似乎是在可观察值从服务返回后立即发生的

\n

应用程序模块

\n
import …
Run Code Online (Sandbox Code Playgroud)

circular-reference rxjs typescript angular

3
推荐指数
1
解决办法
8172
查看次数

处置带有循环引用的对象

我的设计如下:

  • __main__ 引用 a
  • a 引用 b
  • b 引用 a
  • a 创建然后处理 __main__

因此,ab有循环参考.然而在del a我宁愿都ab处置.

我在很多地方看到使用Context Manager的建议,特别是with语句而不是__del__().但是我with在局部范围内看到的开始和结束的所有例子(例如某种方法)

这可以优雅地执行with吗?
有什么选择?

python with-statement circular-reference contextmanager

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

实体框架报告循环引用,但它没有任何意义

这是约.我正在使用的代码.

public class Note {
  public virtual Customer Customer { get; set; }
  public virtual User User { get; set; }
  public ICollection<NoteComment> Comments { get; set; }
}

public class NoteComment {
  public virtual User User { get; set; }
}

public class User {
  public ICollection<Note> Notes { get; set; }
}

public class Customer {}

// --------------------------------------

public class OurDataContext {
  private void ConfigureNotes(DbModelBuilder modelBuilder) {
    modelBuilder.Entity<Note>()
      .HasRequired<User>(n => n.User)
      .WithMany(u => u.Notes)
      .Map(a => a.MapKey("UserId"));

    modelBuilder.Entity<Note>() …
Run Code Online (Sandbox Code Playgroud)

entity-framework circular-reference code-first sql-server-ce ef-code-first

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

用JavaScript编写的JSON循环引用破坏程序

我只知道一个,cycle.js来自Crockford的JSON-JS,但它是递归的并且看起来很慢,需要2-5秒才能JSON.stringify(JSON.decycle(random_graph_with_30_vertices))达到较大图形的递归深度限制.是否有更好的非递归替代方案?

javascript json circular-reference

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

使用循环引用创建表

如何使用循环引用创建多个表.我有这个数据,我想一次性创建:

DROP TABLE employee CASCADE CONSTRAINTS;
CREATE TABLE employee (
  fname    varchar2(15) not null, 
  minit    varchar2(1),
  lname    varchar2(15) not null,
  ssn      char(9),
  bdate    date,
  address  varchar2(30),
  sex      char,
  salary   number(10,2),
  superssn char(9),
  dno      number(4),
  primary key (ssn),
  foreign key (superssn) references employee(ssn),
  foreign key (dno) references department(dnumber)
);

DROP TABLE department CASCADE CONSTRAINTS;
CREATE TABLE department (
  dname        varchar2(15) not null,
  dnumber      number(4),
  mgrssn       char(9) not null, 
  mgrstartdate date,
  primary key (dnumber),
  unique (dname),
  foreign key (mgrssn) references employee(ssn)
); …
Run Code Online (Sandbox Code Playgroud)

sql oracle circular-reference

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

python - 重载()时无法访问gc

我有这个代码,另存为so.py:

import gc
gc.set_debug(gc.DEBUG_STATS|gc.DEBUG_LEAK)

class GUI():
    #########################################
    def set_func(self):
        self.functions = {}
        self.functions[100] = self.userInput
    #########################################
    def userInput(self):
        a = 1
g = GUI()
g.set_func()
print gc.collect()
print gc.garbage
Run Code Online (Sandbox Code Playgroud)

这是输出: 在此输入图像描述

我有两个问题:

  1. 为什么gc.collect()在第一次导入时不报告无法访问?相反,它仅在reload()时报告无法访问.

  2. 有没有快速的方法来修复这个函数映射循环引用,即self.functions [100] = self.userInput?因为我的旧项目有很多这个函数映射循环引用,我正在寻找一个快速的方法/一行来改变这些代码.目前我所做的是最后所有这些功能的"del g.functions".

python garbage-collection circular-reference python-2.7

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

来自相互递归类的析构函数,并且未调用shared_from_this

我有两个类,A和B,它们有一个指向彼此的shared_ptr(A有一个shared_ptr到B,B有一个shared_ptr到A).

我试图在退出范围时调用两个类的析构函数,但它不起作用.没有析构函数被调用.

这是一个示例代码:

class B;

class A
{
    public:
        A() { std::cout << "Constructor A" << std::endl; }
        ~A() { std::cout << "Destructor A" << std::endl; }

        std::shared_ptr<B> b;
};

class B
{
    public:
        B() { std::cout << "Constructor B" << std::endl; }
        ~B() { std::cout << "Destructor B" << std::endl; }

        std::shared_ptr<A> a;
};

int main()
{
    std::shared_ptr<A> a = std::make_shared<A>();
    a->b = std::make_shared<B>();

    a->b->a = a;
}
Run Code Online (Sandbox Code Playgroud)

我怎么能解决这个问题?

c++ shared-ptr circular-reference

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

Symfony 3主义2:关于关系的循环参考

我正在尝试使用Doctrine 2在Symfony 3中运行4个实体,但是当我想序列化一个Account实体时,我仍然坚持循环引用异常:

检测到循环引用(配置限制:1).

我在我的实体中选择了双向关系,架构是这样的:

 - Account [1] ---- [0..*] AccountSheet
 - AccountSheet [1] ---- [0..*] Operation
 - Operation [0..*] ---- [1] Category
Run Code Online (Sandbox Code Playgroud)

这是实体(为清晰起见,有一些清洁):

SRC \的appbundle \实体\ Account.php

<?php
    namespace AppBundle\Entity;

    use Doctrine\ORM\Mapping as ORM;
    use Doctrine\Common\Collections\ArrayCollection;
    use AppBundle\Entity\AbstractGenericEntity;

    /**
     * @ORM\Entity()
     * @ORM\Table(name="accounts",
     *      uniqueConstraints={@ORM\UniqueConstraint(name="accounts_name_unique",columns={"name"})})
     */
    class Account extends AbstractGenericEntity{
        /**
         * @ORM\OneToMany(targetEntity="AccountSheet", mappedBy="account")
         * @var AccountSheet[]
         */
        protected $accountSheets;

        public function __construct($name = null, $description = null){
            $this->accountSheets = new ArrayCollection();
            $this->name = $name;
            $this->description = $description;
        } …
Run Code Online (Sandbox Code Playgroud)

php doctrine circular-reference symfony

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

Swift - 如何避免具有父子关系的结构中的循环引用?

我的关系可以这样描述;

一个Parent有很多Child(孩子)

struct Parent {
    var name: String
    var cost: Int
    var productionCost: Int
    var income: Int
    var children: [Child] = [Child]()

    init(name: String) {
        self.name = name
    }
}

struct Child {
    var name: String
    var parent: Parent?
    var owner: Player?
}

// not used but the intention is to so a player can own a child
class Player {
   var name:
   var cards: [Child] = [Child]()
}
Run Code Online (Sandbox Code Playgroud)

父级需要知道它下面有哪些子级,同样子级也需要知道它属于哪个父级。

但在 Swift 游乐场中,我注意到存在潜在的循环引用。

如果我做;

var parent …
Run Code Online (Sandbox Code Playgroud)

struct circular-reference swift

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

有什么办法围绕C#中的循环引用依赖?

我有3个项目的解决方案

Project1 - main application
Project2 - graphing application
Project3 - graphing library
Run Code Online (Sandbox Code Playgroud)

从Project1中的对象访问数据.项目1引用项目2来创建数据(表单)的显示,而项目2引用项目3来实现渲染图形的实际繁重工作.

现在,项目3需要访问项目1的对象/方法,因为这是数据所在的位置.但是当我从项目3添加引用到项目1时,我收到有关循环引用的错误.

我该如何解决这个问题?

谢谢,Reza

c# circular-reference

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