none
ServiceReferences.ClientConfig找不到 RRS feed

  • 问题

  • 背景:xap通过反射加载dll,  dll中调用了webservice,  ServiceReferences.ClientConfig文件在dll中

    问题:运行中当dll调用webservice时提示“ServiceReferences.ClientConfig在xap中未找到”, 怎么办?我希望不修改xap

    2013年6月28日 7:12

全部回复

  • 不知道这个能否满足你的要求:

    1)为说明这个问题,先约定两个术语。

    1.1)主xap,就是动态加载其他xap的发起方。

    1.2)次xap,就是被动态加载的xap。

    2)参考解决方案

    在[主xap]工程里面,添加[次xap]工程里面引用了过的web引用,即可。这个我已经测试通过。

    3)其他可能会出现的问题。

    由于你是动态加载的,可能还会有其他问题。

    3.1)不只是ServiceReferences.ClientConfig找不到,

    3.2)定义在App里面的资源也是无法找到的。

    3.3)[次xap]里面用到的dll(比如第三方的dll),但在[主xap]里面没引用,也是会出错的。

    总之,动态加载,其实就是个鸡肋,弃之可惜,食之无味。

    4)如需完整示例,请联系我。

    示例包括本人亲手写的

    4.1)简单易懂,逻辑清晰的T4DynamicHelper (动态加载xap)

    4.2)WCF服务书写规范

    (这个规范可能对软件职业选手可能不合适,因为他们往往要玩的高深莫测,

    但是对不太懂计算机的或者入门级别人来说比较好理解)。

    --------------------------------------------------------------------------

    TFSoft = Simple, Nice, Elegant


    • 已编辑 TFSoft 2013年6月28日 16:49 增加内容
    2013年6月28日 16:15
  • 谢谢您的回复, TFSoft 我是你的粉丝奥  :)

    我测试过, 只要把这个ServiceReferences.ClientConfig包含在主xap里问题就解决了,但我不想修改主xap

    我想知道的是:是不是在什么地方存在一个ServiceReferences.ClientConfig文件的路径指定?这个指定是不是可以用一种优雅的方式修改?

    另外,我觉得动态加载dll对一个项目来说可能是必须的,否则xap实在是太大了,至于xap和dll之间的沟通我是通过一个公共类的完成的。 但本次的应用里我不想修改这个公共类。

    2013年7月1日 2:09
  • 将这个ServiceReferences.ClientConfig,添加引用到主项目上来就可以,生成的时候会包含在里面;

    最简单的方法就是,直接复制到主项目的要目录就可以了。

    2015年2月5日 6:49