MS CRM 2011 C#中获取Web Resource

简介:

我在以前的文章中讲过如何用JScript读取web resource资源,我在本文中将要讲解如何在C#中获取web resource资源。

 

有时候可能有这样的需求,你需要在一个插件中读取某个xml web resource的内容,并将该xml文件作为附件创建一封E-mail。或者该xml文档是插件的一个配置文件。这时,你就需要在C#中获取web resource资源了。CRM中web resource不过是一个特殊的entity,在数据库中你也可以看到web resource table。web resource的内容(content)以Base64编码保存在数据库中(参见Base 64 Encoding 编码)。你只需要知道web resource的name,然后就可以用RetrieveMultiple方法获取该web resource。下面的代码演示了,如何获取一个名为aw_testxml.xml的web resource,并将其内容作为附件发送给一封E-mail。

复制代码
// Create an e-mail message.    
// Create the 'From:' activity party for the email 
ActivityParty fromParty = new ActivityParty 
{ 
    PartyId = new EntityReference(SystemUser.EntityLogicalName, new Guid("F6F5BB29-D519-E211-B109-B499BAFDBEDA")) 
};

// Create the 'To:' activity party for the email 
ActivityParty toParty = new ActivityParty 
{ 
    PartyId = new EntityReference(SystemUser.EntityLogicalName, new Guid("F6F5BB29-D519-E211-B109-B499BAFDBEDA")) 
};


Email email = new Email 
{ 
    To = new ActivityParty[] { toParty }, 
    From = new ActivityParty[] { fromParty }, 
    Subject = "SDK Sample e-mail", 
    Description = "SDK Sample for SendEmail Message.", 
    DirectionCode = true 
}; 
Guid _emailId = service.Create(email);

QueryExpression mySavedQuery = new QueryExpression 
{ 
    ColumnSet = new ColumnSet(true), 
    EntityName = WebResource.EntityLogicalName, 
    Criteria = new FilterExpression() 
    { 
        Conditions = 
        {                        
            new ConditionExpression 
            { 
                AttributeName = "name", 
                Operator = ConditionOperator.Equal, 
                Values = {"aw_testxml.xml"} 
            } 
        } 
    } 
};

EntityCollection ec = service.RetrieveMultiple(mySavedQuery); 
if (ec != null && ec.Entities != null && ec.Entities.Count > 0) 
{ 
    WebResource webresource = ec.Entities[0].ToEntity<WebResource>(); 
                         
    ActivityMimeAttachment _sampleAttachment = new ActivityMimeAttachment 
    { 
        ObjectId = new EntityReference(Email.EntityLogicalName, _emailId), 
        ObjectTypeCode = Email.EntityLogicalName, 
        Subject = "Sample Attachment", 
        Body = webresource.Content, 
        FileName = "ExampleAttachment.xml" 
    };

    service.Create(_sampleAttachment); 
}
复制代码

 











本文转自JF Zhu博客园博客,原文链接:http://www.cnblogs.com/jfzhu/archive/2013/02/15/2913077.html    ,如需转载请自行联系原作者



相关文章
|
20天前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
|
2月前
在 CRM WebClient UI Attachment 区域,创建支持 Web Service 的 Word 文档
在 CRM WebClient UI Attachment 区域,创建支持 Web Service 的 Word 文档
23 0
|
2月前
Could not open ServletContext resource [/WEB-INF/springmvc-servlet.xml]【解决方案】
Could not open ServletContext resource [/WEB-INF/springmvc-servlet.xml]【解决方案】
18 0
|
1天前
|
XML 开发框架 .NET
C#/ASP.NET应用程序配置文件app.config/web.config的增、删、改操作
C#/ASP.NET应用程序配置文件app.config/web.config的增、删、改操作
|
5天前
|
SQL 存储 C#
C# Web控件与数据感应之 TreeView 类
C# Web控件与数据感应之 TreeView 类
|
5天前
|
SQL 存储 Oracle
C# Web控件与数据感应之 CheckBoxList 类
C# Web控件与数据感应之 CheckBoxList 类
|
5天前
|
SQL 存储 Oracle
C# Web控件与数据感应之 Control 类
C# Web控件与数据感应之 Control 类
|
5天前
|
SQL 存储 Oracle
C# Web控件与数据感应之 ListControl 类
C# Web控件与数据感应之 ListControl 类
|
2月前
|
XML 存储 数据格式
如何在 CRM Assignment block 里创建支持 Web Service 的 PDF 附件
如何在 CRM Assignment block 里创建支持 Web Service 的 PDF 附件
10 0