小编Mar*_*arc的帖子

如何将通用类序列化为XML?

只要属性Object列表中包含通用字段的实际类型,就可以按预期将以下类的对象序列化为XML XmlElement

public class SerializedObject<T> : Serializable where T : Serializable
{
    [System.Xml.Serialization.XmlElement(Type = typeof(Weapon))]
    [System.Xml.Serialization.XmlElement(Type = typeof(Armor))]
    [System.Xml.Serialization.XmlElement(Type = typeof(QuestItem))]
    public T Object;

    public string ObjectId;
    public int ID;

    public SerializedObject() { }

    public SerializedObject(T _object)
    {
        Object = _object;
        ID = Object.Id;
        ObjectId = Object.ObjectId;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是:

如何在Object不为Tin XmlElement属性指定所有可能类型的情况下序列化此类的对象(包括通用字段)?

c# generics xml-serialization

5
推荐指数
1
解决办法
5379
查看次数

我在哪里向单个区域添加行为?

我的问题很简单,但所有的选项都让我感到困惑......

在我的 MEF/Prism 应用程序中,我想将特定行为附加到一个特定区域。doumentation 说,你可以这样做:

IRegion region = regionManager.Region["Region1"];
region.Behaviors.Add("MyBehavior", new MyRegion());
Run Code Online (Sandbox Code Playgroud)

但是我应该把它放在哪里?有没有地方,这应该用引导程序方法完成?目前,我在 shell 的 Loaded-event 中添加了这样的行为:

    /// <summary>
    /// Interaction logic for Shell.xaml
    /// </summary>
    [Export(typeof(Shell))]
    public partial class Shell
    {
        [ImportingConstructor]
        public Shell(IRegionManager regionManager, ElementViewInjectionBehavior elementViewInjectionBehavior)
        {
            InitializeComponent();
            Loaded += (sender, args) =>
                          {
                              IRegion region = regionManager.Regions[RegionNames.ElementViewRegion];
                              region.Behaviors.Add("ElementViewInjection", elementViewInjectionBehavior);
                          };
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是一个很好的解决方案。我宁愿在引导程序中执行此操作,以便在与其他区域行为注册 ( ConfigureDefaultRegionBehaviors())相同的位置执行此操作。

因此,问题是:将行为添加到单个区域的最佳位置在哪里?

prism mef

5
推荐指数
1
解决办法
1747
查看次数

如何捆绑 React 应用程序以在服务器上的任何子目录中工作?

这个 SO 线程解释了如何捆绑一个 react 应用程序以部署到 web 服务器上的特定子目录。我想捆绑我的反应应用程序以在我的网络服务器上的任何子目录上工作。换句话说:是否可以构建一个反应应用程序,以便我可以将它从

http://服务器/foo

http://服务器/栏

或者

http://server/foo/bar

不重建或改变任何东西?

deployment build reactjs

5
推荐指数
1
解决办法
2859
查看次数

如何聚焦时,如何轻松更改WPF TextBox的样式?

我的WPF应用程序中有一个TextBox,背景颜色为"蓝色".当它获得焦点时,默认情况下背景颜色会变为"白色".我希望背景颜色在TextBox聚焦时有另一种颜色(比如说"DodgerBlue").

我在网上找到的只是样式或模板的惊人示例,定义了TextBox的所有可能的VisualStates.

是否无法创建仅针对特定情况的短模板(即TextBox具有焦点时)?

谢谢.

wpf templates styles textbox

4
推荐指数
1
解决办法
8545
查看次数

解决方法重载时有没有优先权?

为什么执行TestMethod<T>(params T[] input)方法而不是执行TestMethod(object input).我很困惑为什么编译器执行泛型方法.在.net框架上有任何优先级层次结构吗?

class TestClass
{
    static void Main()
    {
        TestMethod("Hello World");
    }

    static void TestMethod(object input)
    {
        Console.WriteLine("object");
    }

    static void TestMethod<T>(params T[] input)
    {
        Console.WriteLine("params T[]");
    }
}
Run Code Online (Sandbox Code Playgroud)

c# generics overloading

4
推荐指数
2
解决办法
1343
查看次数

WCF服务调用返回'407 Proxy Authentication Required'

我正在托管一个WCF Web服务(在Azure上),并将一个WPF桌面应用程序发送给一个客户端(显然)尝试通过代理访问该服务.

服务调用失败,返回

远程服务器返回意外响应:407需要代理身份验证

ServiceModel客户端app.config文件的部分如下所示:

<system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBinding_ILicensing"  closeTimeout="00:00:15" openTimeout="00:00:15"
                 receiveTimeout="00:00:15" sendTimeout="00:00:15" maxReceivedMessageSize="2147483647"
                 maxBufferSize="2147483647">
          <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" 
                        maxArrayLength="2147483647" maxBytesPerRead="2147483647" 
                        maxNameTableCharCount="2147483647"/>
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="xxxxxxx"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ILicensing"
                contract="Cloud.ILicensing" name="BasicHttpBinding_ILicensing" />
    </client>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)

这基本上就是我所知道的.

我想知道通过修改app.config文件和/或服务的web.config文件来修复此行为(这应该无关紧要,因为无论如何都没有到达服务).

据我所知,useDefaultWebProxy绑定节点有一个属性,它要求查找系统代理配置并使用它来连接服务.但是,作为默认值true,我希望将其设置为true显式不会改变任何东西(我猜这基本上是默认值的定义).

  1. 代理验证失败的原因是什么,考虑到useDefaultWebProxy没有设置,因此它应该是true由于它的默认值?

  2. 考虑到限制信息,如何修改app.config以解决问题?基本上:我需要知道/询问我的客户端(即代理服务器地址)以及我需要在客户端配置文件中插入信息的位置?

  3. 如何在本地计算机上设置模拟问题的测试环境?

c# wcf proxy azure

4
推荐指数
1
解决办法
3664
查看次数

共享模板中定义的网格之间的列宽

我正在尝试布局几个控件:

在此输入图像描述

浅灰色垂直线是栅格分离器.此表中的每一行都是一个有三列的网格,左边是标签,中间是分割器,右边是控件,包括文本框和图像.

我希望所有列都对齐.这是我用于每一行的数据模板:

<DataTemplate x:Key="PropertyLineTemplate">
    <Grid Margin="0,0,0,1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition SharedSizeGroup="Name"/>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition SharedSizeGroup="Value"/>
        </Grid.ColumnDefinitions>

        <TextBlock 
            Grid.Column="0"            
            VerticalAlignment="Center"
            Text="{Binding Title}" /> 

        <GridSplitter Grid.Column="1" Width="2"/>

        <SomeUserControl
            Grid.Column="2"               
            Content="{Binding}"                
            Margin="4, 0, 0, 0"/>
    </Grid>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)

以及视图本身的模板:

<DataTemplate DataType="{x:Type vm:PropertiesViewModel}">
    <DockPanel>            
        <!-- Properties -->
        <ScrollViewer>
            <StackPanel Margin="10">
                <ItemsControl ItemsSource="{Binding Properties}"
                        ItemTemplate="{StaticResource PropertyLineTemplate}" />
            </StackPanel>
        </ScrollViewer>
    </DockPanel>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)

以及两者的用法:

<ContentControl Content="{Binding SelectedItem}" Grid.IsSharedSizeScope="True">          
</ContentControl>
Run Code Online (Sandbox Code Playgroud)

哪里SelectedItem是类型PropertiesViewModel.

我还尝试直接放在Grid.IsSharedSizeScope="True"每个单独的网格中,并放在包含控件的面板上,没有效果.如何实现所有列共享宽度?

wpf grid layout

3
推荐指数
1
解决办法
1421
查看次数

尽管安装了 Visual C++ Redistributable 软件包,但仍缺少 msvcr110.dll?

我在使用 Tesseract.NET 的客户端计算机上安装了一个 .NET 应用程序。他得到以下行为:

启动时,这些消息框会出现几次:

msvcrmissing消息

libptmissing

我的错误日志显示:

Skillconomy.Buddy.exe 中发生了“System.TypeInitializationException”类型的第一次机会异常

附加信息:“xyz”的类型初始值设定项引发异常。Tesseract.dll MyProgram.vshost.exe 中第一次出现“Tesseract.LoadLibraryException”类型异常错误:0:无法找到 dll“libtesseract302”,适用于处理器架构 x86。Tesseract.dll 中发生“System.DllNotFoundException”类型的第一次机会异常

我知道 msvcr110.dll 是 Visual Studio 2012 的 Visual C++ Redistributable,可以使用包安装:MSDN。这就是为什么我要求客户在安装我的软件之前安装该软件包。但我不能完全确定他确实做到了。

I have tried to reproduce the issue my customer describes on my own machine. First, I uninstalled all VC++ Runtime Redistributable Packages that I had installed on my development machine:

录像机

No effect, everything still working fine on my machine.

I have then removed the following files:

  • C:/Windows/System32/msvcr110.dll
  • C:/Windows/SysWOW64/msvcr110.dll

The issue is reproduced, I …

c# c++ dll

3
推荐指数
1
解决办法
1万
查看次数

CollectionViewSource如何工作?

任何人都可以告诉我如何在Windows 8上的XAML中的CollectionViewSource中设置正确的属性?

<CollectionViewSource x:Name="itemsViewSource"     
        Source="{Binding Items}"
        d:Source="{Binding AllTasks, Source={d:DesignInstance Type=data:TaskItems,  IsDesignTimeCreatable=True}}"/>
Run Code Online (Sandbox Code Playgroud)

x:name是对象的名称.什么来源?d:源和源之间有什么区别?有谁可以向我解释一下?

wpf xaml collectionviewsource

2
推荐指数
1
解决办法
6273
查看次数

返回Windows Azure Table查询的1000多个实体

我的问题正是这个问题.但是,Azure Storage API已更改,我可以为此问题找到的所有答案都处理旧版本.如何处理当前API版本中返回超过1000个项目的查询?获取少于1000个项目的查询如下所示:

var query = new TableQuery<TermScoreEntity>()
            .Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal,    Name));

var table = _tableClient.GetTableReference("scores");

foreach (var termScoreEntity in table.ExecuteQuery(query))            
    result.Add(termScoreEntity.RowKey, termScoreEntity.Score);
Run Code Online (Sandbox Code Playgroud)

azure odata azure-table-storage

2
推荐指数
1
解决办法
2696
查看次数

在 nuxt.js 组件文件中拆分模板、脚本和样式(HTML、JS 和 CSS)

将 nuxt.js 视图、组件(和布局)拆分为单独的文件(在设计时,而不是构建后)的最佳方法是什么?对于复杂且大型的视图和组件,当我需要在模板和脚本之间切换(查找某些内容等)时,我发现它非常烦人。

理想情况下,我能够定义:

- foo.vue.html
- foo.vue.js
- foo.vue.css
Run Code Online (Sandbox Code Playgroud)

让构建/生成过程完成剩下的工作。我正在使用预渲染 SPA ( nuxt generate) 的生成,因此解决方案(如果有)必须兼容。

vue.js nuxt.js

2
推荐指数
1
解决办法
4825
查看次数

如何在Windows Azure网站上提供.exe文件下载?

我正在尝试将ClickOnce安装程序发布到托管在Windows Azure上的网站上.发布过程按预期工作,但是安装文件无法通过HTTP下载.显然,不可能通过HTTP 提供可执行文件(.exe)和库( .dll).它们可通过FTP获得,但HTTP请求会产生"未找到文件"(404).将文件重命名为setup.txt后,可以将其下载,但这并没有什么帮助.这可以以某种方式配置吗?

clickonce azure

1
推荐指数
1
解决办法
1312
查看次数

从 json 数据渲染 scriban 模板

我想使用可以ExpandoObject从 JSON 字符串生成的数据类型或任何其他数据类型来渲染 Scriban 模板:

var json = "....";                
var dyn = JsonConvert.DeserializeObject<ExpandoObject>(json);                    
var template = Scriban.Template.Parse("Hello {{ data.foo }}!");                    
var result = template.Render(dyn);
Run Code Online (Sandbox Code Playgroud)

Scriban 不适用于ExpandoObjects,因为它们被解析为对象列表{ key = '', value = '' }。在我的用例中,声明数据类型不是一个选项,因为 JSON 模式事先未知。

  • 将 ExpandoObject 转换为动态显示与直接使用相同的行为ExpandoObject

  • 我尝试反序列化 JSON,dynamic这会导致异常:

System.Reflection.TargetParameterCountException:“参数计数不匹配。”

我可以以某种方式转换数据或配置 Scriban 来呈现动态数据吗?

c# json scriban

1
推荐指数
2
解决办法
4385
查看次数