我有一个像这样的多个合同的服务.
[ServiceContract]
public partial interface IBusinessFunctionDAO {
[OperationContract]
BusinessFunction GetBusinessFunction(Int32 businessFunctionRefID);
[OperationContract]
IEnumerable<Project> GetProjects(Int32 businessFunctionRefID);
}
[ServiceContract]
public partial interface IBusinessUnitDAO {
[OperationContract]
BusinessUnit GetBusinessUnit(Int32 businessUnitRefID);
[OperationContract]
IEnumerable<Project> GetProjects(Int32 businessUnitRefID);
}
Run Code Online (Sandbox Code Playgroud)
然后,我明确地实现了每个接口.
public class TrackingTool : IBusinessFunctionDAO, IBusinessUnitDAO {
BusinessFunction IBusinessFunctionDAO.GetBusinessFunction(Int32 businessFunctionRefID) {
// implementation
}
IEnumerable<Project> IBusinessFunctionDAO.GetProjects(Int32 businessFunctionRefID) {
// implementation
}
BusinessUnit IBusinessUnitDAO.GetBusinessUnit(Int32 businessUnitRefID) {
// implementation
}
IEnumerable<Project> IBusinessUnitDAO.GetProjects(Int32 businessUnitRefID) {
// implementation
}
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我有两个GetProjects(int)方法,但每个方法都是显式实现的,所以这个编译得很好并且完全有效.当我真正将其作为一项服务开始时,问题就出现了.它给我一个错误,因为TrackingTool已经包含一个定义GetProject.虽然这是真的,但它是不同服务合同的一部分.在生成方法名称时,WCF是否无法区分服务合同?有没有办法让它区分服务合同?
我的App.Config看起来像这样
<service name="TrackingTool">
<endpoint address="BusinessUnit" contract="IBusinessUnitDAO" />
<endpoint address="BusinessFunction" contract="IBusinessFunctionDAO" /> …
Run Code Online (Sandbox Code Playgroud) 我有以下ResourceDictionary,它被合并到我的Themes/Generic.xaml文件中
<DataTemplate DataType="{x:Type model:RequirementResourceRelation}" x:Key="{x:Static local:Resources.RequirementResourceRelationListTemplateKey}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock MinWidth="35" HorizontalAlignment="Left" Padding="3,0" Text="{Binding Resource.Name, TargetNullValue=Loading...}" />
<TextBlock Grid.Column="1" Text="-" />
<TextBlock Grid.Column="2" MinWidth="35" HorizontalAlignment="Left" Padding="3,0" Text="{Binding Path=RelationType, TargetNullValue=Loading...}" TextWrapping="NoWrap" TextTrimming="CharacterEllipsis" />
</Grid>
</DataTemplate>
<DataTemplate DataType="{x:Type model:RequirementResourceRelation}" x:Key="{x:Static local:Resources.RequirementResourceRelationListTemplate2Key}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock MinWidth="35" HorizontalAlignment="Left" Padding="3,0" Text="{Binding Requirement.Name, TargetNullValue=Loading...}" />
<TextBlock Grid.Column="1" Text="-" />
<TextBlock Grid.Column="2" MinWidth="35" HorizontalAlignment="Left" Padding="3,0" Text="{Binding Path=RelationType, TargetNullValue=Loading...}" …
Run Code Online (Sandbox Code Playgroud) 所以我有两个表格结构如下:
CREATE TABLE #nodes(node int NOT NULL);
ALTER TABLE #nodes ADD CONSTRAINT PK_nodes PRIMARY KEY CLUSTERED (node);
CREATE TABLE #arcs(child_node int NOT NULL, parent_node int NOT NULL);
ALTER TABLE #arcs ADD CONSTRAINT PK_arcs PRIMARY KEY CLUSTERED (child_node, parent_node);
INSERT INTO #nodes(node)
VALUES (1), (2), (3), (4), (5), (6), (7);
INSERT INTO #arcs(child_node, parent_node)
VALUES (2, 3), (3, 4), (2, 6), (6, 7);
Run Code Online (Sandbox Code Playgroud)
如果我有两个节点,请说1和2.我想要一个根节点列表.在这种情况下,它将是1,4和7.我如何编写查询来获取该信息?
我写了一篇文章,但遇到了一个问题,我不能在CTE的递归部分使用LEFT连接,原因不明.如果我被允许执行LEFT JOIN,那么这个查询将起作用.
WITH root_nodes
AS (
-- Grab all the leaf nodes I care about and their …
Run Code Online (Sandbox Code Playgroud) 如果我定义一个执行外部脚本的git别名,有没有办法获得原始的CWD?我知道外部脚本总是在repo的根目录执行所以我只是想知道是否有一个env变量或者我可以用来确定我运行脚本的位置.
这是一个示例别名:
git config --global alias.here '!echo pwd `pwd`'
/home/me/repo/folder$ git here
pwd /home/me/repo
Run Code Online (Sandbox Code Playgroud)
我正在寻找能够做到以下事情的事情:
git config --global alias.here '!echo pwd $OLD_PWD'
/home/me/repo/folder$ git here
pwd /home/me/repo/folder
Run Code Online (Sandbox Code Playgroud) 我有TreeView
一些像TextBox
es和ComboBox
es 这样的其他控件.在TextBox
ES绑定到所选的项目,TreeView
就像这样:
Text="{Binding SelectedItem.Name, ElementName=groupTreeView}"
Run Code Online (Sandbox Code Playgroud)
如果我的所有元素TreeView
都有一个Name
属性,这可以正常工作.
我想知道是否有办法做某种条件绑定会说:
if SelectedItem is MyTreeType
then bind
else
disable the element
Run Code Online (Sandbox Code Playgroud)
可以这样做吗?现在我只是抛出绑定错误而且看起来有点脏.我TreeView
是数据绑定,并且有几个不同类型的类,所以这就是为什么我正在寻找某种条件绑定.
谢谢,劳尔
wpf ×2
c# ×1
conditional ×1
data-binding ×1
exception ×1
git ×1
sql ×1
sql-server ×1
t-sql ×1
wcf ×1