Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
Nhibernate设置如何拦截Add()方法_Nhibernate_Intercept - Fatal编程技术网

Nhibernate设置如何拦截Add()方法

Nhibernate设置如何拦截Add()方法,nhibernate,intercept,Nhibernate,Intercept,我需要一个解决方案:如何拦截ISet.Add方法,这样我就不需要执行children.Parent=Parent,而是jus Parent.children.Add(children) 而不是 var mc = new MyClass(); var mc2 = new MyClass(); mc.Childrens.Add(mc2); mc2.Parent=mc; 公共IList儿童 公共IList儿童 我只需创建一个AddChild方法即可 您还可以像Frederik演示的那样将公共属性公开

我需要一个解决方案:如何拦截ISet.Add方法,这样我就不需要执行children.Parent=Parent,而是jus Parent.children.Add(children)

而不是

var mc = new MyClass();
var mc2 = new MyClass();
mc.Childrens.Add(mc2);
mc2.Parent=mc;
公共IList儿童
公共IList儿童

我只需创建一个
AddChild
方法即可

您还可以像Frederik演示的那样将公共属性公开为只读集合


我只是创建了一个
AddChild
方法来实现这一点

您还可以像Frederik演示的那样将公共属性公开为只读集合


是的,我可以这样做,但这将使用许多人,我无法隐藏ISet.Add()方法,有些人将使用此方法。是的,我可以这样做,但这将使用许多人,我无法隐藏ISet.Add()方法,有些人将使用此方法。为什么用IList代替ISet?为什么用IList代替ISet?
var mc = new MyClass();
var mc2 = new MyClass();
mc.Childrens.Add(mc2);
var mc = new MyClass();
var mc2 = new MyClass();
mc.Childrens.Add(mc2);
mc2.Parent=mc;
public IList<MyClass> Childrens