C# 如何从memorycache类中分离对象引用#

C# 如何从memorycache类中分离对象引用#,c#,memorycache,C#,Memorycache,当我们在从memorycache检索任何对象之后更新它时,它在内存缓存中也得到了更新。是否有任何解决方案可以从memorycache中删除引用,并且当对象上发生任何更新时,它将永远不会更新memorycache中的对象值?如果您有该对象的源代码,可以使用MemberwiseClone(),该方法受保护。您只能在继承的位置使用 只需将代码添加到您的类中 public class MyClass { public MyClass Copy() {

当我们在从memorycache检索任何对象之后更新它时,它在内存缓存中也得到了更新。是否有任何解决方案可以从memorycache中删除引用,并且当对象上发生任何更新时,它将永远不会更新memorycache中的对象值?

如果您有该对象的源代码,可以使用MemberwiseClone(),该方法受保护。您只能在继承的位置使用

只需将代码添加到您的类中

  public class MyClass
    {
        public MyClass Copy()
        {
            return (MyClass)MemberwiseClone();
        }
    }

可以对对象使用复制方法。这将创建具有相同值的新实例。您可以访问:

创建对象的深度副本。如果类有许多嵌套对象,那么深度副本将不是理想的解决方案,例如类a{void a(){B=new B();C=new C();}}我可以使用JSON.NET进行序列化/反序列化,但这会对性能产生影响。内存缓存中应该有某种方法来停止自动更新。只有在父类下没有嵌套对象时,这才有效。类似:类A{void A(){B=new B();C=new C();}}在上面的场景中,它不会创建B和C对象的副本,如果我更新B和C上的任何值,它将自动更新父缓存对象。