小编Jeh*_*hof的帖子

将MediaElement的Source-Property绑定到FileInfo

我有一个viewmodel类,它提供FileInfo类型的属性MediaFile,我想将该属性绑定到MediaElement的Source属性.

问题是,MediaElement的Source属性需要一个Uri,但是我无法访问FileInfo类的FullName属性(在绑定中定义的转换器中),因为这会引发SecurityException.

使用图像没有问题,因为Image控件需要一个ImageSource对象,我可以使用FileInfo实例的流在转换器中创建.

如何定义绑定,以便我的MediaElement获得正确的源?或者我如何将MediaElement传递给转换器,以便我可以在MediaElement上调用SetSource(Stream).

ViewModel:

public class ViewModel {
  // additional code omitted
  public FileInfo MediaFile {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

转换器:

public class FileInfoToMediaConverter : IValueConverter {
  public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
        var file = value as System.IO.FileInfo;
        if (MediaResourceFactory.IsImage(file.Extension)) {
            System.Windows.Media.Imaging.BitmapImage image = new System.Windows.Media.Imaging.BitmapImage();
            image.SetSource(file.OpenRead());
            return image;
        }
        else if (MediaResourceFactory.IsVideo(file.Extension)) {
           // create source for MediaElement
        }
        return null;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
        throw …
Run Code Online (Sandbox Code Playgroud)

c# data-binding silverlight mvvm silverlight-4.0

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

确定请求是否来自本地网络(Intranet)

我需要使用客户端或服务器端来识别请求是来自Internet还是Intranet.

我想解决的问题是:我们的网站可以从互联网和内部网访问.Intranet用户(公司内部的用户)无法访问Internet.我们正在使用Google Anylitics,当Intranet用户访问该页面时,该页面需要很长时间才能上传,因为它会尝试下载(ga)从Google生成的JavaScript文件.

有解决方案吗

c# asp.net iis sharepoint asp-classic

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

使用Unity Container时,没有为此对象异常定义无参数构造函数

我在trynig加载视图时遇到上述异常.

我正在使用Unity来初始化我的控制器实例.仍然得到上述错误.

这是我的控制器.

public class SiteController : Controller
{

    private ISiteRepository _repository;

    public SiteController(ISiteRepository repository)
    {
        _repository = repository;
    }

    //
    // GET: /Site/

    public ActionResult Index()
    {
        return View();
    }

    //
    // GET: /Site/Details/5

    public ActionResult Details(int id)
    {
        return View();
    }}
Run Code Online (Sandbox Code Playgroud)

这是我的Global.asax.cs

protected void Application_Start()
    {
        ConfigApi(GlobalConfiguration.Configuration);
        AreaRegistration.RegisterAllAreas();

        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    }

    static void ConfigApi(HttpConfiguration config)
    {
        var unity = new UnityContainer();
        unity.RegisterType<SiteController>();
        unity.RegisterType<ISiteRepository, SiteRepository>(new HierarchicalLifetimeManager());

        config.DependencyResolver = new IocContainer(unity);
    }
Run Code Online (Sandbox Code Playgroud)

这是我的SiteRepository类.

public class SiteRepository:ISiteRepository
{
    private readonly …
Run Code Online (Sandbox Code Playgroud)

ioc-container unity-container c#-4.0 asp.net-mvc-3

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

为什么Observable.Generate()抛出System.StackOverflowException?

我正在编写一个C#(.NET 4.5)应用程序,用于聚合基于时间的事件以进行报告.为了使我的查询逻辑可以重复用于实时和历史数据,我使用了Reactive Extensions(2.0)及其IScheduler基础结构(HistoricalScheduler和朋友).

例如,假设我们创建的事件列表(按时间顺序排序,但他们可能一致!),其唯一的有效载荷IST他们的时间戳,想知道他们的整个固定期限的缓冲区分配:

const int num = 100000;
const int dist = 10;

var events = new List<DateTimeOffset>();
var curr = DateTimeOffset.Now;
var gap = new Random();

var time = new HistoricalScheduler(curr);

for (int i = 0; i < num; i++)
{
    events.Add(curr);
    curr += TimeSpan.FromMilliseconds(gap.Next(dist));
}

var stream = Observable.Generate<int, DateTimeOffset>(
    0,
    s => s < events.Count,
    s => s + 1,
    s => events[s],
    s => events[s],
    time);

stream.Buffer(TimeSpan.FromMilliseconds(num), time)
    .Subscribe(l => Console.WriteLine(time.Now …
Run Code Online (Sandbox Code Playgroud)

.net c# scheduler system.reactive

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

为什么我不能在祖先类上使用IComparable <T>并比较子类?

我正在尝试使用List.Sort()对对象列表进行排序,但在运行时它告诉我它无法比较数组中的元素.

无法比较数组中的两个元素

班级结构:

public abstract class Parent : IComparable<Parent> {
    public string Title;
    public Parent(string title){this.Title = title;}

    public int CompareTo(Parent other){
        return this.Title.CompareTo(other.Title);
    }
}

public class Child : Parent {
    public Child(string title):base(title){}
}

List<Child> children = GetChildren();
children.Sort(); //Fails with "Failed to compare two elements in the array."
Run Code Online (Sandbox Code Playgroud)

为什么我不能比较实现的基类的子类IComparable<T>?我可能错过了一些东西,但我不明白为什么不允许这样做.

编辑:应该澄清我的目标是.NET 3.5(SharePoint 2010)

Edit2:.NET 3.5是问题(见下面的答案).

c# icomparable .net-3.5

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

VS中的"发布"和"主人"有什么区别?

"Visual Studio Express 2013 for Windows"允许我编译调试,发布主控.虽然已知调试发布之间的区别,但我从未听说过编译选项.它与发布有什么不同?

unity-game-engine buildconfiguration visual-studio-2013

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

什么是.NET应用程序域?

什么是应用程序域(AppDomain),它与进程或线程有什么不同?

.net appdomain applicationdomain

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

Unity .NET:依赖项列表

是否可以在Unity或其他类型的IoC库中注入这样的依赖项列表

public class Crawler 
{
    public Crawler(IEnumerable<IParser> parsers) 
    {
         // init here...
    }
}
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我可以在我的容器中注册多个IParser,然后解决它们.

可能吗?谢谢

c# dependency-injection ioc-container unity-container

8
推荐指数
2
解决办法
1914
查看次数

在Visual Studio 2012中重新启动(XAML-)Designer的更好方法

目前,当我遇到问题(如错误和警告,已解决但仍存在于ErrorList中或重新加载设计器使用的程序集)与Visual Studio 2012中的XAML-Designer时,我需要重新启动它,我打开ProcessExplorer并杀死XDesProc.exe正在运行的Visual Studio 2012实例的子进程.这导致Visual Studio 2012显示Unhandled Exception Designer process terminated unexpectedly!并为我提供重新加载设计器的选项.

在Visual Studio 2012中是否有更好的或内置的方式来重新启动设计器.重新打开XAML文件通常无助于解决问题.

designer restart xaml-designer visual-studio-2012

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

Unity中有任何跟踪吗?

我有一个非常大的依赖树,Unity正在尝试解决这个巨大的依赖链中某处的依赖.我不得不手动查看所有依赖项来找出可能缺少的东西,这是一项艰巨的任务.

不幸的是,unity只报告它试图在它抛出的异常中构造的项目,并且没有提供有关它到达该点的路径的信息.

Unity是否发布了任何跟踪/日志信息,可以帮助我确切地确定我缺少哪些依赖项?

c# unity-container

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