PDA

View Full Version : does not implement interface member



مهدی هادیان2
چهارشنبه 30 بهمن 1392, 22:22 عصر
بسم الله الرحمن الرحیم
با سلام
کلاس و اینترفیس زیر رو در نظر بگیرید:
// Type: System.Web.Optimization.IBundleOrderer
// Assembly: System.Web.Optimization, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
// MVID: 15A75737-7AF9-4DDC-B334-641694E9E409
// Assembly location: E:\TempProject\Barnamenevis\aleki\Mvc4TwitterBootS trapTest\packages\Microsoft.AspNet.Web.Optimizatio n.1.1.2\lib\net40\System.Web.Optimization.dll

using System.Collections.Generic;

namespace System.Web.Optimization
{
public interface IBundleOrderer
{
IEnumerable<BundleFile> OrderFiles(BundleContext context, IEnumerable<BundleFile> files);
}
}


using System.Collections.Generic;
using System.IO;
using System.Web;
using System.Web.Optimization;

namespace Mvc4TwitterBootStrapTest.Helper
{
/// <summary>
/// A custom bundle orderer (IBundleOrderer) that will ensure bundles are
/// included in the order you register them.
/// </summary>
public class AsIsBundleOrderer : IBundleOrderer
{
public IEnumerable<FileInfo> OrderFiles(BundleContext context, IEnumerable<FileInfo> files)
{
return files;
}
}

public static class BundleConfig
{
private static void addBundle(string virtualPath, bool isCss, params string[] files)
{
BundleTable.EnableOptimizations = true;

var existing = BundleTable.Bundles.GetBundleFor(virtualPath);
if (existing != null)
return;

Bundle newBundle;
if (HttpContext.Current.IsDebuggingEnabled)
{
newBundle = new Bundle(virtualPath);
}
else
{
newBundle = isCss ? new Bundle(virtualPath, new CssMinify()) : new Bundle(virtualPath, new JsMinify());
}
newBundle.Orderer = new AsIsBundleOrderer();

foreach (var file in files)
newBundle.Include(file);

BundleTable.Bundles.Add(newBundle);
}

public static IHtmlString AddScripts(string virtualPath, params string[] files)
{
addBundle(virtualPath, false, files);
return Scripts.Render(virtualPath);
}

public static IHtmlString AddStyles(string virtualPath, params string[] files)
{
addBundle(virtualPath, true, files);
return Styles.Render(virtualPath);
}

public static IHtmlString AddScriptUrl(string virtualPath, params string[] files)
{
addBundle(virtualPath, false, files);
return Scripts.Url(virtualPath);
}

public static IHtmlString AddStyleUrl(string virtualPath, params string[] files)
{
addBundle(virtualPath, true, files);
return Styles.Url(virtualPath);
}
}
}
خطای زیر رو میده:

Error 1 'Mvc4TwitterBootStrapTest.Helper.AsIsBundleOrderer ' does not implement interface member 'System.Web.Optimization.IBundleOrderer.OrderFiles (System.Web.Optimization.BundleContext, System.Collections.Generic.IEnumerable<System.Web.Optimization.BundleFile>)' E:\TempProject\Barnamenevis\aleki\Mvc4TwitterBootS trapTest\Mvc4TwitterBootStrapTest\Helper\BundleCon fig.cs 12 18 Mvc4TwitterBootStrapTest

با سپاس

Amir Oveisi
چهارشنبه 30 بهمن 1392, 22:39 عصر
IEnumerable<BundleFile> OrderFiles(BundleContext context, IEnumerable<BundleFile> files);
IEnumerable<FileInfo> OrderFiles(BundleContext context, IEnumerable<FileInfo> files)

کد اول چیزی هست که باید پیاده سازی بشه
کد دوم چیزی هست که شما پیاده سازی کردید
تفاوت:
شما به جای BundleFile، دارید FileInfo استفاده میکنید برای پارامتر دوم متد و همینطور نوع داده بازگشتیش.

Cybersilent
پنج شنبه 01 اسفند 1392, 12:37 عصر
استفاده از Resharper (http://soft98.ir/software/programming/14633-JetBrains-ReSharper.html)در این گونه موارد می تونه خیلی کمک کننده باشه .