我正在使用SignalR Wiki Getting Started Hubs页面中的示例聊天应用程序.我已经扩展它以添加组支持,它工作正常.
但是,现在我想从外部控制台应用程序向组发送消息.这是我的控制台应用程序的代码,下面是我的代码组.如何从代理向组发送消息?可能吗?
// Console App
using System;
using Microsoft.AspNet.SignalR.Client.Hubs;
namespace SignalrNetClient
{
class Program
{
static void Main(string[] args)
{
// Connect to the service
var connection = new HubConnection("http://localhost:50116");
var chatHub = connection.CreateHubProxy("Chat");
// Print the message when it comes in
connection.Received += data => Console.WriteLine(data);
// Start the connection
connection.Start().Wait();
chatHub.Invoke("Send", "Hey there!");
string line = null;
while ((line = Console.ReadLine()) != null)
{
// Send a message to the server
connection.Send(line).Wait();
}
} …Run Code Online (Sandbox Code Playgroud) SessionAwareCoreServiceClient与CoreServiceClient之间的主要区别是什么?
wsHttp是未在服务器上运行的远程应用程序的首选绑定吗?是否可以使用远程Core Service应用程序中的netTcp绑定?为什么不?
Tridion Core Service为我们提供了3个用于XML内容的主要绑定:
我发现这篇文章是关于wsHttp和basicHttp之间的区别.另外一个很好的解释为什么netTcp在另一篇文章中更快
我有一个GUI扩展添加一个Tab(ext:tabpage)到View.
ext:pagetype节点有什么作用?我一直在使用Namespace:Name如下所示.这个价值还有其他选择吗?
<ext:pagetype>RC.TabExtension</ext:pagetype>
Run Code Online (Sandbox Code Playgroud) 我希望使用Tridion核心服务的GetListUsingItems方法获取Blueprint项目的所有子项.我得到的核心服务的结果(更多)与TOM中的旧方式不同.看来我还通过组件链接返回引用我的源组件的其他组件.我在核心服务中缺少过滤器选项吗?
Tridion 5.3:
Function GetLocalizedItemNodes(itemUri)
Dim tridionItem : set tridionItem = tdse.GetObject(itemUri,1)
Dim rowFilter : set rowFilter = tdse.CreateListRowFilter()
call rowFilter.SetCondition("ItemType", GetItemType(itemUri))
call rowFilter.SetCondition("InclLocalCopies", true)
Dim usingItemsXml : usingItemsXml = tridionItem.Info.GetListUsingItems(1919, rowFilter)
Dim domDoc : set domDoc = GetNewDOMDocument()
domDoc.LoadXml(usingItemsXml)
Dim nodeList : set nodeList = domDoc.SelectNodes("/tcm:ListUsingItems/tcm:Item[@CommentToken='LocalCopy']")
set tridionItem = nothing
set domDoc = nothing
set GetLocalizedItemNodes = nodeList
End Function
Run Code Online (Sandbox Code Playgroud)
Tridion 2011 SP1核心服务:
private XElement GetLocalizedItems(string itemUri)
{
XElement usingXML = null;
try
{
CoreServiceClient client = new CoreServiceClient(); …Run Code Online (Sandbox Code Playgroud) 我们最近(非常成功地)升级到了Tridion 2011 SP1.我想安装Content Porter 2009 SP2,它需要应用修补程序汇总1.
修补程序汇总1分为3部分:
是否可以安装DB Script和Content Manager Hotfix而不安装Content Delivery?我问,因为Content Delivery文件的推出过程比内容管理器更复杂(因此需要更多时间).
如何获得Tridion核心服务的发布目标列表?我看到此代码示例以获取目标信息,但无法找到从核心服务获取列表的方法.也许它是Publication对象的一部分?
var pubtarget = (PublicationTargetData)client.Read("tcm:0-21-65537", readoption);
Run Code Online (Sandbox Code Playgroud)
此外,如果有办法通过安圭拉JavaScript客户端获得此功能,那也很酷.
是否可以使用Anguilla JavaScript API获取存储在Tridion中的图像的字节数组?我想在GUI扩展弹出窗口中显示图像.
在Tridion 2011中,我希望使用与UpdateXml相当的Core Service以通用方式创建新的Tridion对象.我打算在文件夹和结构组上创建新的组件,页面和更高版本.它使用UpdateXml工作得很好,但我遇到了将RepositoryLocalObject(或另一个泛型类型对象)转换为ComponentData具有核心服务的对象的问题.我的核心服务代码更长(并且在第二代增长).
我尝试访问对象类型特定属性时出现错误消息:
错误9'Tridion.ContentManager.CoreService.Client.RepositoryLocalObjectData'不包含'Content'的定义,也没有扩展方法'Content'接受'Tridion.ContentManager.CoreService.Client.RepositoryLocalObjectData'类型的第一个参数
可能的解决方案是创建扩展方法吗?
Tridion TOM API:
Function CreateNewItemCopy(organizationalItemUri, itemType, title, xml,
directory, filename)
Dim newItem : set newItem = tdse.GetNewObject(itemType, organizationalItemUri)
newItem.UpdateXml(xml)
newItem.Title = title
if(itemType = 64) then ' page
newItem.FileName = filename
elseif(itemType = 4) then ' sg
newItem.Directory = directory
end if
newItem.save(true)
CreateNewItemCopy = newItem.id
set newItem = nothing
End Function
Run Code Online (Sandbox Code Playgroud)
Tridion 2011核心服务
*根据以下优秀答案更新代码
private ItemType GetTridionItemType(RepositoryLocalObjectData source)
{
string itemType = source.GetType().Name;
switch (itemType)
{
case "ComponentData": …Run Code Online (Sandbox Code Playgroud) 是否有可能在Tridion 2011 TOM.NET中获得字段类型?
ItemField类有一个名称和定义,但我没有看到旧的可信ItemType属性.
我有一种感觉我需要使用Definition属性,但不确定什么是最干净的方法.
有任何想法吗?
Tridion 2011 GUI中的所有已检出项目在哪里?在5.3中,它位于工作流程列表中.