我有一个XML配置文件,其中包含一组字符串,如下所示:
<SomeSetting>value</SomeSetting>
<SomeOtherSetting>value</SomeOtherSetting>
<TypesOfThings>
<Thing>Type 1</Thing>
<Thing>Type 2</Thing>
<Thing>Type 3</Thing>
</TypesOfThings>
Run Code Online (Sandbox Code Playgroud)
这些"东西"成为应用程序前端的选项供用户选择.
我的问题是我是否必须创建一个事物类才能正确使用序列化,或者有没有办法使用属性将字符串直接读入列表?
例如(为简洁起见,删除了主体和私有变量,这是.NET 2.0):
[Serializable]
public class Config
{
public string SomeSetting
{
get;
set;
}
public string SomeOtherSetting
{
get;
set;
}
public List<string> TypesOfThings
{
get;
set;
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个动态组件模板,它将XML发布到Broker数据库,然后使用Component Presentation工厂动态加载.
此Xml包含图像的URL.我需要一个缩略图和一个完整的图像.我设法使用Image Resizer TBB来生成缩略图,但我希望这会添加可以引用的单独的包项和二进制文件,但它似乎会覆盖全尺寸图像.
有没有办法在不编写我自己的自定义TBB的情况下可以同时使用我的Xml和包?
在Tridion 2011(使用UI 2012)中,我有一个组件,其中包含一个组件链接列表.我想在通过Component Link引入的其中一个字段上启用内联编辑.这可能吗?
我能够为其他非组件链接字段启用内联编辑,但CL似乎是一个问题.我首先尝试了tcdl语法,但是没有生成有效的SiteEdit组件字段标记.最后,我尝试编辑页面上的Start Component Field注释,看看我是否能找到一个有效的语法,但没有提出任何有效的方法.
有任何想法吗?
我在c#中创建了一个Windows服务,我正在尝试使用这里推荐的installutil安装它进行调试:http://msdn.microsoft.com/en-us/library/sd8zc8ha.aspx
installutil表示安装已完成.但是,服务控制管理器中没有任何内容.
我在Server 2008和XP上尝试了这个,结果相同.
有任何想法吗?
我想关闭远程Windows计算机(例如,连接到局域网的Windows计算机.)我已经尝试了很多,但我找不到解决方案.有没有人知道如何关闭远程计算机?任何语言都可以.
我正在构建一个系统,其中一些用户可以访问某些数据而不是其他用户.
如何保护我的应用程序以便用户A可以访问
/Product/1/Edit 但不是 /Product/2/Edit
我正在考虑为此使用动作过滤器.这是正确的方法吗?
我有一个基本类型的IEnumerable作为我的模型.
我需要在列表中显示不同的HTML,具体取决于具体类型.
因此,结果列表可能与HTML中的类似:
<ul>
<li class="points">Points - Item 1 - 10 points <a href="#">Remove</a></li>
<li class="media">Media - Item 2 - your_uploaded_image.jpg <a href="#">Remove</a></li>
<li class="content">Content - Item 3 <a href="#">Remove</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我可能会在稍后添加另一种类型,所以下面的解决方案并不是我真正想要的.
@foreach(var item in Model)
{
if(item is PointImpl)
{
var pointItem = item as PointImpl;
<li class="points">Points - @pointItem.Name - @pointItem.Points points <a href="#">Remove</a></li>
}
else if(item is MediaImpl)
{
var mediaItem = item as MediaImpl;
<li class="media">Media - @mediaItem.Name - @mediaItem.FileName <a href="#">Remove</a></li>
}
/*
More implementations …Run Code Online (Sandbox Code Playgroud) 我试图从代码创建一个zip文件,我正在使用dotnetzip
我想在磁盘上不存在的文件夹中创建目录树.我该怎么做呢?
我尝试过使用AddDirectory但似乎想在磁盘上找到目录.我也尝试过AddEntry,但这需要一些内容.
我的文件使用FileStream选项存储在SQL Server中,并在那里以层次结构进行组织.
我写了这个递归方法来做它,但AddDirectory行不起作用.
private void GetFiles(ZipFile zipFile, Folder folder, string path)
{
zipFile.AddDirectory(folder.FolderName, path);
foreach (var file in folder.Files)
zipFile.AddEntry(file.FileName, file.FileData);
foreach(var subfolder in folder.SubFolders)
{
GetFiles(zipFile, subfolder, path + "\\" + subfolder.FolderName);
}
}
Run Code Online (Sandbox Code Playgroud) 当我尝试右键单击Tridion内容管理器中的项目时,出现错误.错误在Tridion自己的错误显示机制内部,显示IP地址.
这是一个屏幕抓取:

值得注意的是,这是在Windows XP Mode VM中,通过VPN连接到客户端网络上的IP地址.
我正在尝试将WebForms 2010安装到SDL Tridion 2009 SP1实例中.
我正在使用这种方法,我将现有的出版物重命名为WebForms,然后使用Content Porter将WebForms构件块导入该出版物.但是,我收到以下错误:
"不可能将儿童出版物改为母版出版物"
有没有人遇到过这个?
我在尝试导入仅包含一个带有某些关键字的单个类别的Content Porter包时遇到错误.
该类别存在于目标服务器上,差异在附加到关键字的元数据模式中.
该类别代表导航,我想用UAT服务器更新生产服务器上的元数据.但是,它似乎不是更新目标服务器上的关键字,而是尝试创建新关键字,因此错误:
<tcm:Token>tcm:0-0-0</tcm:Token></tcm:Line>
<tcm:Line ErrorCode="80040329" Cause="true">
<![CDATA[Name, Key must all be unique for items of type: Keyword within this Category and its BluePrint context. Source or sources of conflict: tcm:4-13012-1024.]]>
<tcm:Token>Name , Key</tcm:Token>
<tcm:Token>RESID_15309</tcm:Token><tcm:Token>RESID_15293</tcm:Token>
<tcm:Token>tcm:4-13012-1024</tcm:Token>
Run Code Online (Sandbox Code Playgroud)
我肯定是在tcmn:0-4-1出版物(01 Schemas)出口的.我原以为它会匹配名称和更新,就像它与组件一样.
谁看过这个吗?
我正在尝试检索多媒体组件的文件的二进制URL,该文件作为动态组件演示文稿发布.
我可以在Broker数据库的Binaries表中看到Url,但我似乎无法使用以下任何一段代码获取二进制url:
使用SQLBinaryMetaHome:
using (var sqlBinMetaHome = new Com.Tridion.Broker.Binaries.Meta.SQLBinaryMetaHome())
{
int componentItemId = int.Parse(queryStringId.Split('-')[1]);
var binaryMeta = sqlBinMetaHome.FindByPrimaryKey(new TCDURI(publicationId, 16, componentItemId));
if (binaryMeta != null)
{
VideoBinaryUrl = binaryMeta.GetURLPath();
}
else
{
Logger.Log.ErrorFormat("Failed ot load via SQL Binary Meta {0}", queryStringId);
}
}
Run Code Online (Sandbox Code Playgroud)
使用二元元工厂:
using (var b = new BinaryMetaFactory())
{
var binaryMeta = b.GetMeta(queryStringId);
if (binaryMeta != null)
{
VideoBinaryUrl = binaryMeta.UrlPath;
}
else
{
Logger.Log.ErrorFormat("Failed to load binary meta {0}", queryStringId);
}
}
Run Code Online (Sandbox Code Playgroud)
我可以使用ComponentMetaFactory加载Component Meta数据.
关于为什么我无法加载Binary Meta的任何想法?我是在正确的轨道上吗?
抢
0以下有什么区别?
public class MyClass
{
public bool MyProperty;
}
public class MyClass
{
public bool MyProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
它只是语义吗?
tridion ×6
c# ×5
tridion2009 ×2
.net ×1
asp.net-mvc ×1
broker ×1
c#-3.0 ×1
dotnetzip ×1
installation ×1
razor ×1
service ×1
syntax ×1
windows ×1