对象 A 的属性通过对象 B 的属性作为引用而改变

Object A properties change through Object B properties as references

假设我有对象 A,我想将其属性分配给对象 B,并且通过修改对象 B,我希望对象 A 的引用类型属性也发生变化。对象不一样。

Class A 
{
   public string Link1 { get; set;}
}

Class B 
{        
   public string Link { get; set;}
}

public void ProcessLink(ref B b)
{
    b.Link = serviceX.GetLink(); // this should set Obj A.Link value too
}

代码应该是什么样的?这样对象 A 属性 Link1 将通过调用

来更新
var a = new A(){ Link1 = null};
var b = new B() {Link = a.Link1};
ProcessLink(ref B);

现在 a.Link1 等于 b.Link

您描述的 BA 代理。一种方法是为 class B 提供对 A 实例的引用。为 B 编写实际上在 A 上运行的 getter 和 setter,而不是自动属性。您可以给 A 一个方法来获取 B.

的实例

此模式的一个示例是 CancellationTokenSource(类似于 A)和 CancellationTokenB)。令牌是公开已取消的源 属性 的代理,但不让您取消它。

考虑让 B 成为 A 实现的接口是否更有意义。