日期:2014-05-18  浏览次数:20773 次

WCF----ServiceHost数组创建
C# code

  ServiceHost[] host = new ServiceHost[]{
                                emphost,
                                emailHost, 
                                orgHost,
                                uploadHost,
                                roleHost, 
                                loginUserHost,
                                actionInfoHost,
                                modelActionHost};
            Type[] type = {
                            typeof(EmpService),
                            typeof(UserService),
                            typeof(OrgService),
                            typeof(UpLoadService),
                            typeof(RoleService),
                            typeof(LoginUserService),
                            typeof(ActionInfoService),
                            typeof(ModelActionService)
                          };
            for (int i = 0; i < host.Length; i++)
            {
                  host[i] = new ServiceHost(type[i]);
                  //结果为“((System.ServiceModel.Channels.CommunicationObject)(this.emailHost))”为 null
                  //emailHost = new ServiceHost(type[i]);这样子就可以
                 
            }



 host[i] = new ServiceHost(type[i]); 想这样子实现,该怎么写??、

------解决方案--------------------
http://www.cnblogs.com/xiaomi7732/archive/2011/09/22/2179396.html
------解决方案--------------------
用集合好些 

http://www.cnblogs.com/levinknight/archive/2007/05/25/760176.html
------解决方案--------------------
这个问题完全和WCF无关,是你自己把引用类型的用法搞错了,基础不好造成的。
你的host数组里面添加的每个内容都是一个个引用地址,包括host[i] = new ServiceHost(type[i]);赋值也是传递的地址,因此你从未修改过emailHost所在地址的值,更没有将emailHost指向新地址,那么emailHost肯定只能是null了。