我有一个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) 我需要使用客户端或服务器端来识别请求是来自Internet还是Intranet.
我想解决的问题是:我们的网站可以从互联网和内部网访问.Intranet用户(公司内部的用户)无法访问Internet.我们正在使用Google Anylitics,当Intranet用户访问该页面时,该页面需要很长时间才能上传,因为它会尝试下载(ga)从Google生成的JavaScript文件.
有解决方案吗
我在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) 我正在编写一个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) 我正在尝试使用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是问题(见下面的答案).
"Visual Studio Express 2013 for Windows"允许我编译调试,发布或主控.虽然已知调试和发布之间的区别,但我从未听说过主编译选项.它与发布有什么不同?
什么是应用程序域(AppDomain),它与进程或线程有什么不同?
是否可以在Unity或其他类型的IoC库中注入这样的依赖项列表?
public class Crawler
{
public Crawler(IEnumerable<IParser> parsers)
{
// init here...
}
}
Run Code Online (Sandbox Code Playgroud)
通过这种方式,我可以在我的容器中注册多个IParser,然后解决它们.
可能吗?谢谢
目前,当我遇到问题(如错误和警告,已解决但仍存在于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文件通常无助于解决问题.
我有一个非常大的依赖树,Unity正在尝试解决这个巨大的依赖链中某处的依赖.我不得不手动查看所有依赖项来找出可能缺少的东西,这是一项艰巨的任务.
不幸的是,unity只报告它试图在它抛出的异常中构造的项目,并且没有提供有关它到达该点的路径的信息.
Unity是否发布了任何跟踪/日志信息,可以帮助我确切地确定我缺少哪些依赖项?
c# ×6
.net ×2
.net-3.5 ×1
appdomain ×1
asp-classic ×1
asp.net ×1
c#-4.0 ×1
data-binding ×1
designer ×1
icomparable ×1
iis ×1
mvvm ×1
restart ×1
scheduler ×1
sharepoint ×1
silverlight ×1