小编ang*_*son的帖子

在Web项目中托管时调试Silverlight?

这可能是一个基本问题.

我有两个项目:

  1. 一个Web应用程序项目,具有托管Silverlight应用程序的网页以及Web服务
  2. Silverlight应用程序项目,在上述Web应用程序中托管的项目

如果我调试Silverlight应用程序,它希望使用生成的网页运行它,这当然不会启动我的Web应用程序,并且由于某些跨站点安全模型而导致Web服务调用失败.因此,即使我运行Web应用程序,Silverlight应用程序也不会使用它.

如果我调试Web应用程序(即,将其设置为启动项目并点击Debug),那么Silverlight应用程序显然已正确托管,但我无法对其进行调试.其中的任何断点都显示为空心圆.

那么我做错了什么?我应该如何配置我的项目,以便我可以启动Web应用程序,托管我的Silverlight应用程序并进行调试?

当有人告诉我时,我认为这是"面团"时刻之一,但我无法理解.

这是Visual Studio 2008,.NET 3.5和Silverlight 3.

asp.net debugging silverlight silverlight-3.0 .net-3.5

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

2(3)关于T4模板的问题,获取正在处理的主文件的名称,并能够结束处理?

我正在尝试为项目创建自己的DSL,并且我想创建一个包含主要引擎的T4文件,然后创建包含此引擎并调用它的小T4文件.

我正在考虑为将调用引擎的T4文件尝试这种格式:

<#@ include file="EngineLib\EngineLib.tt" #>
<# RunEngine(); #>
dsl goes here
Run Code Online (Sandbox Code Playgroud)

我有三个问题如下:

1.我可以获取主脚本的名称吗?

基本上,在EngineLib.tt中,我可以检索包含它的脚本的完整路径和文件名,在这种情况下,脚本如上所示?或者,如果没有,内容呢?

2.我可以结束脚本处理吗?

例如,在RunEngine()方法内部,如果第一个问题产生答案,我将读取原始脚本,删除包含T4指令的第一行,然后根据我的DSL规则处理文件的其余部分.

然后,当RunEngine从该DSL产生代码结果时,我将终止T4代码的处理,因此DSL本身不作为生成文件的一部分输出.

这有意义吗?

假设RunEngine只输出一个类,如果我不能终止处理,这就是生成的文件的样子:

public class SomeClass
{
}
dsl goes here
Run Code Online (Sandbox Code Playgroud)

显然我不希望DSL代码作为我生成的输出的一部分.

我在错误的树上吠叫吗?

我知道我不能在DSL中包含类似T4的代码,因为这最终会被编译成代码,这些代码将作为T4处理的一部分运行,但在这种情况下它不会成为问题.

我还没有想到的其他任何事情都可能出错?

.net dsl t4 visual-studio-2010

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

有没有办法避免FieldAccessException?

我们有一个类库,它可以执行一些类似于ORM的基本操作,基本上我们可以这样做:

conn.Query<EntityType>("select * from table");
Run Code Online (Sandbox Code Playgroud)

并取回一个List<EntityType>.由于从列名到实体类型的属性的映射存储在实体类型中,因此当需要仅使用属性的子集时,我们可以轻松地构造基本对象.

问题是,这段代码很大程度上依赖于反射,我们刚刚发现我们知道的开销远大于我们的预期.

与"select*from table"相关的各种操作的示例时序:

  1. IDataReader,遍历所有行,178ms
  2. IDataReader,调用GetValues获取对象[]数组,对于所有行,260ms
  3. IDataReader,调用GetValues,构造新对象并添加到列表,对于所有行,356ms
  4. IDataReader,调用GetValues,构造新对象,使用反射将值复制到属性,~10.500ms(29x步骤3.)

我们缓存所涉及的反射,但仍然有太多的开销.

由于99%的对象都是带有(1或2个支持字段)的简单属性,我想我可以通过IL/DynamicMethod生成以下代码:

instance._Id = (int)value;
Run Code Online (Sandbox Code Playgroud)

这失败了FieldAccessException,我认为这是因为字段是私有的.有没有办法让我生成这个代码,或者我只是安全地咆哮错误的树?

.net reflection.emit

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

在C#中没有'\'(反斜杠)访问子目录

当我尝试访问我的c:驱动器的子目录时,我有一个奇怪的情况:

首先我尝试了以下代码,输出为0(零):

MessageBox.Show(new DirectoryInfo("c:").GetDirectories().Length.ToString());

但是当路径(c :)添加'\'时,它显示了c:drive中子文件夹的确切数量.

MessageBox.Show(new DirectoryInfo("c:\\").GetDirectories().Length.ToString());

但尝试了另一个驱动器(d :)像:

MessageBox.Show(new DirectoryInfo("d:").GetDirectories().Length.ToString());

它检索所有子目录.

谁能解释为什么会这样?


谢谢你们.现在我明白了"c:"返回当前目录而不是root "c:\".但我没有得到任何错误,如所提到的那样.

c# path getdirectories drive

3
推荐指数
2
解决办法
751
查看次数

使用相同类型的类定义where关键字

我在我正在使用的库中看到过这种定义.我对TObjectType:CSObject的位置感到疯狂.很明显,似乎我可以在约束中使用相同的时间,因为它可以工作和编译,但这究竟意味着什么?

public class CSList<TObjectType>: CSList, IList<TObjectType>, IList
    where TObjectType: CSObject<TObjectType>
Run Code Online (Sandbox Code Playgroud)

c# generics

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

是否可以将属性更改为属性?

我找到了一个Propperty Changed Event的实现,我可以在没有Web中属性名称的情况下更改Call Property.然后我在这里建立了一个扩展方法

public static void OnPropertyChanged(this INotifyPropertyChanged iNotifyPropertyChanged, string    propertyName = null)
{
    if (propertyName == null)
        propertyName = new StackTrace().GetFrame(1).GetMethod().Name.Replace("set_", "");
    FieldInfo field = iNotifyPropertyChanged.GetType().GetField("PropertyChanged", BindingFlags.Instance | BindingFlags.NonPublic);
    if (field == (FieldInfo) null)
        return;
    object obj = field.GetValue((object) iNotifyPropertyChanged);
    if (obj == null)
        return;
    obj.GetType().GetMethod("Invoke").Invoke(obj, new object[2]
    {
        (object) iNotifyPropertyChanged,
        (object) new PropertyChangedEventArgs(propertyName)
    });
}
Run Code Online (Sandbox Code Playgroud)

所以我可以将Property更改为:

private bool _foo;
public bool Foo
{
    get { _foo; }
    private set
    {
        _foo = value;
        this.OnPropertyChanged();
    }
}
Run Code Online (Sandbox Code Playgroud)

但我想,如果我在使用Property更改时不必实现属性的getter和setter,那就更好了. …

c# wpf inotifypropertychanged

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

摆脱字符串中的空格

要在字符串中添加空格分隔符,我们使用String.Join().

我的问题:我有什么(以及如何)删除该分隔符.

该字符串的结构如下"FF FF FF FF FF FF FF FF FF ...."

如何删除空格?

c# string formatting

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

Delphi中的"复制"单元名称,组件引用,编译问题

我们使用不同供应商的几个组件包,其中两个都在其目录结构中提供了"regexp.pas"单元.

现在的问题是,无论我们编译它们的顺序如何,其中一个抱怨使用错误版本的各种其他单元编译单元.

有没有办法正确处理这个问题?

delphi delphi-units

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

在C#中检查来自不同类的变量

问候-

我有2节课.一个称为"程序",另一个称为"日志".名为Programs的类public const string m_sEnviron = "";接近顶部,我需要通过名为Logs的类来检查m_sEnviron变量的设置.变量m_sEnviron将从名为Tidal的调度程序中设置,因此如何从其他类检查其值.如果这不是最好的,请告诉我更好的方法.

提前致谢.

问候,

Namespace NightScripts
{
   class Program
   {

      public static string m_sEnviron {get; set;} 

      static void Main(string[] args)
      {

      }

      //Lots of other functions...

   }

   class Logs
   {
      //I try to get access to m_sEnviron but it will not show after I type Program.
   }
}
Run Code Online (Sandbox Code Playgroud)

c#

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

重写任意数量的路径段以查询参数

我有这个.htaccess规则:

RewriteRule viewshoplatest/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/$ /viewshoplatest.php?$1=$2&$3=$4&$5=$6&$7=$8&$9=$10&$11=$12&$13=$14&$15=$16
Run Code Online (Sandbox Code Playgroud)

它应该映射这样的URL:

http://www.veepiz.com/viewshoplatest/start/10/end/10/filter/0/ownerid/0/sortby/date/sortdir/DESC/cat/0/scat/0/
Run Code Online (Sandbox Code Playgroud)

对此:

http://www.veepiz.com/viewshoplatest.php?start=0&end=10&filter=0&ownerid=0&sortby=date&sortdir=DESC&cat=0&scat=0
Run Code Online (Sandbox Code Playgroud)

当我点击链接并打印$_GET变量时,我得到了这个:

Array ( [start] => 10 [end] => 10 [filter] => 0 [ownerid] => 0 [sortby] => start0 [start1] => start2 [start3] => start4 [start5] => start6 )
Run Code Online (Sandbox Code Playgroud)

关于它为什么表现不好的任何想法?


好吧,我通过重写规则来解决这个问题

RewriteRule viewshoplatest/start/(.*)/end/(.*)/filter/(.*)/ownerid/(.*)/sortby/(.*)/sortdir/(.*)/cat/(.*)/scat/(.*)/$ /viewshoplatest.php?start=$1&end=$2&filter=$3&ownerid=$4&sortby=$5&sortdir=$6&cat=$7&scat=$8
Run Code Online (Sandbox Code Playgroud)

apache mod-rewrite url-rewriting

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