- 浏览: 34258 次
- 性别:
- 来自: 大连
最新评论
MoCoolKaErp只有一个入口,接收参数为基类,按WCF协议必须声明所有的子类为knownType.最直接的办法就是遍历所有assembly,寻找所有的子类。
用linq遍历assembly寻找指定类生成web.config中序列化
linq语法的确精炼,一句话就行了
方法
public XElement GenConfig(String[] assemblys)
{
return new XElement("system.runtime.serialization", new XElement("dataContractSerializer",
new XElement("declaredTypes",
new XElement("add", new XAttribute("type", typeof(MKEntity).AssemblyQualifiedName),
(from ass in assemblys
let assembly = Assembly.Load(ass)
select from type in assembly.GetTypes()
where (type.IsClass && type.IsSubclassOf(typeof(MKEntity)))
select (new XElement("knownType", new XAttribute("type", type.AssemblyQualifiedName))))
))))
;
}
调用
[TestMethod()]
public void GenConfigTest()
{
MKGenConfig target = new MKGenConfig(); // TODO: Initialize to an appropriate value
string[] assemblys = new String[] { "MoCoolKaCoreErp", "MoCoolKaErp" };// TODO: Initialize to an appropriate value
XElement expected = null; // TODO: Initialize to an appropriate value
XElement actual;
actual = target.GenConfig(assemblys);
//Assert.AreEqual(expected, actual);
//Assert.Inconclusive("Verify the correctness of this test method.");
}
生成结果
<system.runtime.serialization>
<dataContractSerializer>
<declaredTypes>
<add type="MoCoolKaErp.Model.MKEntity, MoCoolKaErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<knownType type="MoCoolKaCoreErp.Model.Access.MKPurviewEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<knownType type="MoCoolKaCoreErp.Model.UI.MKColumnEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<knownType type="MoCoolKaCoreErp.Model.DataModel.MKFieldEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<knownType type="MoCoolKaCoreErp.Model.DataModel.MKTableEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<knownType type="MoCoolKaCoreErp.Model.UI.MKTabEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<knownType type="MoCoolKaCoreErp.Model.UI.MKWindowEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<knownType type="MoCoolKaCoreErp.Model.Code.MKCodeClassEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<knownType type="MoCoolKaCoreErp.Model.Code.MKCodeEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<knownType type="MoCoolKaCoreErp.Model.Access.MKConfigEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<knownType type="MoCoolKaCoreErp.Model.Access.MKRoleEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<knownType type="MoCoolKaCoreErp.Model.Access.MKUserEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</add>
</declaredTypes>
</dataContractSerializer>
</system.runtime.serialization>
用linq遍历assembly寻找指定类生成web.config中序列化
linq语法的确精炼,一句话就行了
方法
public XElement GenConfig(String[] assemblys)
{
return new XElement("system.runtime.serialization", new XElement("dataContractSerializer",
new XElement("declaredTypes",
new XElement("add", new XAttribute("type", typeof(MKEntity).AssemblyQualifiedName),
(from ass in assemblys
let assembly = Assembly.Load(ass)
select from type in assembly.GetTypes()
where (type.IsClass && type.IsSubclassOf(typeof(MKEntity)))
select (new XElement("knownType", new XAttribute("type", type.AssemblyQualifiedName))))
))))
;
}
调用
[TestMethod()]
public void GenConfigTest()
{
MKGenConfig target = new MKGenConfig(); // TODO: Initialize to an appropriate value
string[] assemblys = new String[] { "MoCoolKaCoreErp", "MoCoolKaErp" };// TODO: Initialize to an appropriate value
XElement expected = null; // TODO: Initialize to an appropriate value
XElement actual;
actual = target.GenConfig(assemblys);
//Assert.AreEqual(expected, actual);
//Assert.Inconclusive("Verify the correctness of this test method.");
}
生成结果
<system.runtime.serialization>
<dataContractSerializer>
<declaredTypes>
<add type="MoCoolKaErp.Model.MKEntity, MoCoolKaErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<knownType type="MoCoolKaCoreErp.Model.Access.MKPurviewEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<knownType type="MoCoolKaCoreErp.Model.UI.MKColumnEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<knownType type="MoCoolKaCoreErp.Model.DataModel.MKFieldEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<knownType type="MoCoolKaCoreErp.Model.DataModel.MKTableEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<knownType type="MoCoolKaCoreErp.Model.UI.MKTabEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<knownType type="MoCoolKaCoreErp.Model.UI.MKWindowEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<knownType type="MoCoolKaCoreErp.Model.Code.MKCodeClassEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<knownType type="MoCoolKaCoreErp.Model.Code.MKCodeEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<knownType type="MoCoolKaCoreErp.Model.Access.MKConfigEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<knownType type="MoCoolKaCoreErp.Model.Access.MKRoleEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<knownType type="MoCoolKaCoreErp.Model.Access.MKUserEO, MoCoolKaCoreErp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</add>
</declaredTypes>
</dataContractSerializer>
</system.runtime.serialization>
发表评论
文章已被作者锁定,不允许评论。
-
Mocoolka 状态机-动作设计一
2013-07-15 11:21 917状态机设计见http://fastspeeed.iteye.c ... -
Mocoolka 状态机设计
2013-07-12 08:12 1029了解mocoolka更多的信息,直接访问http://sour ... -
Mocoolka 用户自定义字段设计
2013-06-21 12:14 928在系统实施期间,根据实际的要求可能对窗体的字段有增加。 增加的 ... -
Mocoolka 企业应用基础模块设计
2013-06-17 10:13 894Mocoolka 企业应用基础模块设计 支持Mocoolka ... -
Mocoolka 代码讲解 屏幕生成器之FORM生成
2013-06-14 08:43 1371支持Mocoolka,请点击这里 https://code.c ... -
Mocoolka开发理念
2013-06-13 15:26 956支持Mocoolka,请点击这里 ... -
Mocoolka 自动帮助实现
2013-06-07 08:58 923思路:帮助基于模型数据,模型数据中有本窗体所有的控件、按钮,只 ... -
Mocoolka 多语言操作步骤
2013-06-07 08:46 793设计 有两种类型文本,一种是系统本身,一种是模块内 1) 系统 ... -
Mocoolka 多语言开发步骤
2013-06-03 10:08 838因为多语言要保存到xml中,按照框架需要增加实体、通过设计导入 ... -
Mocoolka 多语言、自动帮助设计
2013-06-03 09:49 1072多语言在原有xml中增加语言节点 操作步骤是在设计中选语言,增 ... -
Mocoolka 0.5预览版发布
2013-05-31 13:13 979Mocoolka 0.5预览版发布 Mo ... -
Mocoolka 技术方案 .net后台移动设备前端
2012-05-09 10:53 7391)使用通用http协议 2)遵循ERP SERVER协议,在 ... -
(2012) MoCoolKa 5月份工作计划
2012-05-09 10:39 954(2012) MoCoolKa 5月份工作计划 4月份总结 ... -
设计花火
2012-04-08 22:25 629设计花火 把ERP协议组件处理部分到数据库层,可以看成是 ... -
(2012) MoCoolKa 4月份工作日志
2012-04-08 16:47 761(2012) MoCoolKa 4月份工作日志 4月份计划 ... -
MoCoolKa2012路线图
2012-04-08 16:05 724MoCoolKa2012路线图 (记录想法,随时更新) Mo ... -
MoCoolKaErp简介
2012-04-07 00:24 792MoCoolKaErp简介 设计原则:模型驱动、配置驱动、动作 ... -
MoCoolKa项目v0.5子项目功能简介
2012-04-06 22:04 819MoCoolKa项目v0.5子项目功能简介 SERVER端 E ... -
linq xml to entity
2012-04-06 21:15 1428linq做为转换工具不错,代码简洁多了 <?xml ve ... -
泛型错误 The type parameter 'T' cannot be used with the 'as' operator
2012-04-06 10:55 3727泛型错误 The type parameter 'T' can ...
相关推荐
这个压缩包文件"aspnet中web.config配置节点详解.rar"包含了一个名为"aspnet中web.config配置节点详解.doc"的文档,很显然是为了详细解析`web.config`文件中的各个配置节点。下面我们将深入探讨这些关键节点。 1. `...
在Web应用中,配置WCF服务通常涉及到修改`Web.config`文件,这是ASP.NET Web应用程序的主要配置文件。以下是对`Web.config`文件中与WCF服务配置相关的知识点的详细解释。 1. **服务定义和服务合约** - `IService1....
运行以上命令后,会在"C:\"目录下生成两个文件,ClientCode.cs 和app.config (C:\app.config 中已经为我们配置好了WCF服务的根节点等必须的信息,当然,如果您也可以自己对部分参数进行修改)
WCF全面解析 上册.pdf WCF全面解析 上册.pdf WCF全面解析 上册.pdf
(C:\WCFClint\app.config 中已经为我们配置好了WCF服务的根节点等必须的信息,当然,如果您也可以自己对部分参数进行修改) 4.将ClientCode.cs 和app.config 添加到需要调用WCF服务的项目中 5.在需要调用WCF服务...
2. **配置文件**:可能包含一个或多个配置文件,如app.config或web.config,用于设置服务的行为、绑定、终结点等信息。配置文件对于调整服务的运行时行为至关重要。 3. **客户端代码**:用于演示如何消费WCF服务的...
App.config配置文件是.NET框架中用于存储应用程序设置和配置信息的文件。它是Windows应用程序(如桌面应用或Windows服务)的主要配置文件,允许开发者在不重新编译代码的情况下更改应用程序的行为。下面将详细介绍...
- App.config或Web.config:配置文件,定义了服务地址、绑定和行为等信息。 - Solution文件:整个项目的解决方案文件,便于管理和编译。 通过研究这个案例,你可以学习如何创建WCF服务,配置服务地址,生成并使用...
在这种情况下,可以通过Web应用程序的web.config文件传递服务地址,比如添加一个appSettings键值对`<add key="WcfServiceAddress" value="http://myServices.com"/>`。然后在承载Silverlight的ASPX页面中,使用`...
为了使WCF服务支持Web调用,需要在服务配置文件(web.config或app.config)中设置相应的终结点,指定binding为WSHttpBinding,并启用基本Http绑定,以便非.NET客户端(如Java)能够理解并调用服务。 2. **WCF调用**...
1. **Web.config配置问题**:WCF服务的配置可能不正确,导致IIS没有正确识别和处理请求。 2. **ISAPI筛选器或扩展未启用**:IIS可能没有启用处理WCF服务所需的ISAPI筛选器(如ASP.NET)或扩展。 3. **MIME类型不匹配...
2. **配置文件**:WCF服务通常使用配置文件(app.config或web.config)来设置服务属性。源码中的配置文件可以作为参考,了解如何管理服务的行为和设置。 通过深入研究这个名为"WCF高级编程源码"的资源,开发者不仅...
8. **服务托管**:WCF服务可以托管在各种环境中,如IIS(Internet Information Services)、Windows服务、自承载等,这为服务部署提供了极大的灵活性。 9. **持久化与状态管理**:对于需要持久化数据或管理会话状态...
可能还包含了配置文件(如web.config或app.config),用于配置服务的绑定、行为和服务端点。 "DB.zip"文件则可能包含了一个数据库实例,用于演示WCF服务与Node.js之间的数据交换。这可能是一个SQL Server、MySQL或...
在C#代码中,实例化代理类并调用对应的方法。如果服务期望JSON格式的数据,你需要将输入参数转换为JSON字符串。这通常通过使用`System.Web.Script.Serialization`命名空间的`JavaScriptSerializer`类完成。 3. **...
在"Backup"这个文件中,可能包含了服务的配置文件(如app.config或web.config)、服务代码、客户端代码、示例数据或者其他帮助文档。要理解和利用这些资源,你需要解压文件,然后根据提供的代码和文档来创建、配置和...
Title: WCF Multi-Layer Services Development with Entity Framework, 4th Edition Author: Mike Liu Length: 388 pages Edition: 4 Language: English Publisher: Packt Publishing Publication Date: 2014-10-27 ...
在手动配置WCF(Windows Communication Foundation)服务的宿主`.config`文件时,可能会遇到多种错误,这些错误通常与服务定义、行为配置、终结点、绑定和身份验证有关。以下是一些常见问题及其解决方法: 1. **...
2. **配置服务**:在服务配置文件(web.config或app.config)中,为服务设置合适的绑定和终结点。由于cf3.5不支持net.tcp,我们可以选择使用HTTP绑定(如basicHttpBinding或wsHttpBinding)。 3. **生成客户端代理...