小编Ali*_*tad的帖子

如何获取字符串名称来解析对象(即从它的意义上来说)

例如,我可以做类似的事情:

switch (myString)
case "rectangle":
 o = new rect();
 break;
case "ellipse"
 etc...
Run Code Online (Sandbox Code Playgroud)

但是我怎么不做上面的事情,即只有一行代码直接从字符串中获取对象.想象一下,例如,一个按钮以及用户点击它时所说的任何内容,它会显示所显示的文本并从中创建一个对象.

c# oop factory

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

JavaScript调用并应用于Internet Explorer 8(和7)中的window.print

好的,我在网上看了很多,但找不到答案.

我可以期待浏览器之间的CSS差异,但也存在JavaScript差异?

那么为什么这在IE8中有效:

window.print(); // works
Run Code Online (Sandbox Code Playgroud)

但是当我传递window.print给函数并调用它时,它在IE8中不起作用(在IE9中工作):

function callIt(f){
    f.call();
};



callIt(window.print);
Run Code Online (Sandbox Code Playgroud)

这是一个已知的问题吗?


编辑

好吧它不起作用意味着它会简单地忽略它,没有javascript错误或任何东西.

抱歉,它出现此错误:

   Object doesn't support this property or method
Run Code Online (Sandbox Code Playgroud)

编辑2

我需要使用callapply因为我需要传递上下文.我正在尝试创建一个可以传递函数的类,它可以调用它来传递上下文或参数.不要告诉我使用f() 这不是一个答案,因为它不能解决我的问题.问题是callapply.

javascript printing window call apply

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

如何从java发送json字符串到.NET REST服务?

我正在尝试从我的Android客户端发送一个json字符串到我的.net Rest服务...任何人都可以帮我解决这个问题吗?

HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://myURL");

 JSONObject json = new JSONObject();
 json.put("name", "i am sample");
 StringEntity str = new StringEntity(json.toString());
 str.setContentType("application/json; charset=utf-8");
 str.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"application/json; charset=utf-8"));
 post.setEntity(str);
 HttpResponse response = client.execute(post);
Run Code Online (Sandbox Code Playgroud)

响应是不好的要求.我发送json对象作为字符串?这段代码是否正确?

.net android web-services

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

如何动态声明一个类?C#

是否有可能动态声明一个类?是否有可能在C#中使用匿名类创建通用列表?任何代码片段都会有所帮助.谢谢

.net c# reflection anonymous-class

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

ASP.NET MVC中的奇怪行为:从嵌套结构中的列表中删除项目始终会删除最后一项

脚本

我有一个父/子模型(确切地说是一个小问卷表格和一个或多个联系人).由于历史原因,所有这些都是在同一个表单上完成的,因此用户可以拥有父表单和一个孩子的表单,他们会点击一个按钮来添加更多的孩子.孩子有一些标准的领域和父母一样,没什么特别的.主要要求是数据必须不会触及数据库,直到所有数据都有效并设置,而我必须返回服务器以添加删除子项.

履行

在ASP.NET MVC(使用MVC 2和VS 2010)中使用它非常快.我有两个模型,一个用于父母,一个用于孩子,只有一个控制器.Controller有一个Create方法,它是一个get默认视图,带有一个包含一个孩子的全新父母.我使用编辑器模板为儿童模型很好地工作.

我有一个HTML表单,其中包含"保存"和"添加子",每个表单都有"删除"按钮.由于这不能存储在数据库中,我将临时模型存储在表单本身中,它在浏览器和服务器之间来回传递.Perfromance在这里不是一个问题,但开发成本因为有很多这样的形式 - 所以请不要因为建议替代方法而分散太多,尽管我还是赞赏评论.

为了找出要删除的子项,我创建了临时GUID ID并将它们与子项关联起来.这将转到HTML输入的删除按钮值(当你有多个动作和相同的表格时通常的技巧).

我禁用了缓存.

问题

请看下面的片段.我已经调试了代码,我看到总是正确的GUID被传递,正确的项目从控制器的列表中删除,并更正在模板中呈现的项目.但总是最后一个删除!我经常点击第一次删除,可以看到最后一次删除.我继续,第一项是最后被删除.

调节器

    public ActionResult Create()
    {
        EntryForm1 entryForm1 = new EntryForm1();
        entryForm1.Children.Add(new Child("FILL ME", "FILL ME"){ TempId = Guid.NewGuid()});
        return View("EntryForm1View", entryForm1);
    }

    [HttpPost]
    public ActionResult Create(EntryForm1 form1, FormCollection collection, string add)
    {
        if (add == "add")
            form1.Children.Add(new Child("FILL ME", "FILL ME") {TempId = Guid.NewGuid()});

        var deletes = collection.AllKeys.Where(s => s.StartsWith("delete_"));
        collection.Clear();
        if (deletes.Count() > 0)
        {
            string …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc asp.net-mvc-2

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

MEF最佳实践:在应用程序中我在哪里创建容器以及在哪里调用Compose()?

我已经决定使用MEF作为我拥有的插件模式,并且发现MEF易于拾取而且根本没有侵入性.我查看了样品,发现它们非常容易使用.

然而,一旦开始实施,我开始苦苦于构图.假设我有一个属于其中[ImportMany]一个属性的类.我看到的所有例子中,他们在具有导入的类中创建了Container(让我们称之为可组合的),并且基本上该类组成了自己.对于一个例子来说这可能是好的,但是确定地知道插件如何被填充对于组合物来说知道太多了.

我可以愉快地创建一个单例容器并在我的可编组中访问它,但是另外,composable必须显式调用Compose()自己,我不满意,因为它就像一个依赖注入场景,类主动调用Resolve()容器.所以,我并不想用它只是服务地点.

为了使事情变得更糟,我也使用温莎城堡进行DI,我不确定MEF和Windsor如何一起工作.

我真的环顾四周,无法找到任何有关如何正确做MEF的指导和示例.现在可能是我没有环顾四周或者我不太了解MEF(这是真的)但是会从实际在现实世界中使用它的经验中重视你的观点.

.net c# mef

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

C#Windows服务没有工作要做

我创建了一个C#windows服务,应该发送一些电子邮件,但是当我启动服务时,我收到消息'本地服务开始然后停止'......'如果他们没有工作可以自动停止某些服务'

为什么会这样?

namespace EmailService
{
public partial class EmailService : ServiceBase
{
    private System.Timers.Timer _timer = null;
    private DateTime _lastRun = DateTime.Now;
    private int _timerIntervalValue;

    public EmailService()
    {
        InitializeComponent();
    }

    protected override void OnStart(string[] args)
    {

        if (string.IsNullOrEmpty(ConfigurationManager.AppSettings["Timer"]))
        {
            throw new Exception("The timer value is not set in the app.config.");
        }
        else
        {
            _timerIntervalValue = Convert.ToInt32(ConfigurationManager.AppSettings["Timer"]);
        }

        _timer = new System.Timers.Timer(_timerIntervalValue);
        _timer.Elapsed += OnTimedEvent;
        _timer.Interval = Convert.ToInt32(_timerIntervalValue);
        _timer.Enabled = true;

    }

    protected override void OnStop()
    {
        _timer.Stop();
        _timer.Dispose();
    }

    private …
Run Code Online (Sandbox Code Playgroud)

.net c# windows-services

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

WCF休息 - 最佳做法是什么?

刚刚开始我的第一个WCF休息项目,并希望获得有关使用REST的最佳实践的一些帮助.

我已经看过很多教程,并且似乎有很多方法可以做某些事情......例如,如果做一个POST,我已经看过一些设置HttpStatusCodes(OK/Errors等)的教程,以及其他教程.只是返回包含操作结果的字符串.

在一天结束时,有4个操作,当然必须有一个指南,说明如果你正在做GET,这样做,等等和POST,这样做...

任何帮助,将不胜感激.

JD

rest wcf asp.net-web-api

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

在C#中使用属性值调用方法

[AttributeUsage(AttributeTargets.Method,AllowMultiple=true)]
public class MethodId : Attribute
{
    private int mId;
    public MethodId(int mId)
    {
        this.mId = mId;
    }

    public int methodId
    {
        get { return this.mId; }
        set { this.mId = value; }
    }
}
Run Code Online (Sandbox Code Playgroud)
public class Methods
{
    [MethodId(1)]
    public void square()
    {        }

    [MethodId(2)]
    public void Notify()
    {        }
}
Run Code Online (Sandbox Code Playgroud)

如何在MethodId的帮助下访问main()或任何其他类中的square()?

c# properties invoke custom-attributes c#-4.0

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

尝试序列化参数时出错

我有一个WCF服务,我希望将一些文件从服务器传输到客户端.

当我硬编码文件的文件名以流入代码时,我已经有了这个工作.

我正在尝试更改代码,以便getStream方法返回一个Dictionary,这样我就可以返回文件名集合和与文件名关联的流,然后在客户端处理每个流.

在尝试调用getStream方法时,我在客户端获得以下异常:接收到http:// localhost:8082 /的HTTP响应时发生错误.这可能是由于服务端点绑定不使用HTTP协议.这也可能是由于服务器中止HTTP请求上下文(可能是由于服务关闭).请参阅服务器日志以获取更多详

在网上研究这个之后,看起来这是一个错误的异常所以我打开了跟踪,这是来自跟踪日志的异常消息:

尝试序列化参数http://tempuri.org/:GetStreamResult时出错.InnerException消息是'Type'System.IO.FileStream',数据协定名称为'FileStream:http://schemas.datacontract.org/2004/07/System.IO'不是预期的.考虑使用DataContractResolver或将任何静态未知的类型添加到已知类型列表中 - 例如,通过使用KnownTypeAttribute属性或将它们添加到传递给DataContractSerializer的已知类型列表中.有关更多详细信息,请参阅InnerException.

这是服务器端代码:

public Dictionary<String, Stream> GetStream()
    {
        Dictionary<String, Stream> retDic = new Dictionary<string, Stream>();          

        string[] fileEntries = Directory.GetFiles(@"C:\Users\Ash\Desktop\FrontendPluginsServer");
        foreach (string fileName in fileEntries)
        {
             //do something with fileName
            retDic.Add(fileName, File.OpenRead(fileName));
        }
        //return File.OpenRead(@"C:\Users\Ash\Desktop\FrontendPluginsServer\OptekImporterFrontend.dll");

        return retDic;
    }
Run Code Online (Sandbox Code Playgroud)

这是客户端代码:

ModuleDownloader.ModuleDownloaderClient moo = new ModuleDownloader.ModuleDownloaderClient();
        Dictionary<String, Stream> dic = moo.GetStream();

        foreach (String key in dic.Keys)
        {
            using (Stream file = File.OpenWrite(@"C:\Users\Ash\Desktop\FrontEndPluginsClient\" + key)) { CopyStream(dic[key], file); }
        }
Run Code Online (Sandbox Code Playgroud)

如果您需要更多信息,请告诉我.

亲切的问候 …

c# wcf serialization

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