public void UpdateStatus_WithImageAndLocation()
        {
            mockServer.ExpectNewRequest()
            .AndExpectUri("https://api.twitter.com/1.1/statuses/update_with_media.json")
            .AndExpectMethod(HttpMethod.POST)
            .AndExpectHeaderContains("Content-Type", MediaType.MULTIPART_FORM_DATA.ToString() + ";boundary=")
            .AndExpectBodyContains("Content-Disposition: form-data; name=\"status\"")
            .AndExpectBodyContains("Content-Type: text/plain;charset=ISO-8859-1")
            .AndExpectBodyContains("Test Message")
            .AndExpectBodyContains("Content-Disposition: form-data; name=\"lat\"")
            .AndExpectBodyContains("123.1")
            .AndExpectBodyContains("Content-Disposition: form-data; name=\"long\"")
            .AndExpectBodyContains("-111.2")
            .AndExpectBodyContains("Content-Disposition: form-data; name=\"media\"; filename=\"Logo.png\"")
            .AndExpectBodyContains("Content-Type: image/png")
            .AndRespondWith(JsonResource("Status"), responseHeaders);

            IResource     photo   = new AssemblyResource("assembly://Spring.Social.Twitter.Tests/Spring.Social.Twitter.Api.Impl/Logo.png");
            StatusDetails details = new StatusDetails();

            details.Latitude  = 123.1f;
            details.Longitude = -111.2f;
#if NET_4_0 || SILVERLIGHT_5
            Tweet tweet = twitter.TimelineOperations.UpdateStatusAsync("Test Message", photo, details).Result;
#else
            Tweet tweet = twitter.TimelineOperations.UpdateStatus("Test Message", photo, details);
#endif
            AssertSingleTweet(tweet);
            AssertTweetEntities(tweet.Entities);
        }
Пример #2
0
        public static void ConfigureLog4Net()
        {
            AssemblyResource resource =
                new AssemblyResource("assembly://Spring.Services.WindowsService.Tests/Spring.Services/tests.config");

            XmlConfigurator.Configure(resource.InputStream);
        }
Пример #3
0
        private Stream PopulateResourceStream(string baseResourceName, Assembly assembly, bool isStringResourceType)
        {
            var names = assembly.GetManifestResourceNames();
            var index = Array.FindIndex <string>(names, (item) => item.Equals(baseResourceName, StringComparison.OrdinalIgnoreCase));

            var resurceName = baseResourceName;

            if (index == -1)
            {
                resurceName = baseResourceName + "_" + LanguageManager.Instance.Language + ".resources";
            }
            index = Array.FindIndex <string>(names, (item) => item.Equals(resurceName, StringComparison.OrdinalIgnoreCase));


            if (index == -1)
            {
                resurceName = baseResourceName + "." + DefaultResourceName + "_" + LanguageManager.Instance.Language + ".resources";
            }
            index = Array.FindIndex <string>(names, (item) => item.Equals(resurceName, StringComparison.OrdinalIgnoreCase));

            if (index == -1)
            {
                return(null);
            }

            var res = new AssemblyResource {
                BaseResourceName = baseResourceName, Assembly = assembly
            };

            AssemblyResources.Add(res);
            return(assembly.GetManifestResourceStream(names[index]));
        }
Пример #4
0
        public static IResource Embedded(string name)
        {
            var uri      = new CustomUri(EmbeddedPath(name));
            var resource = new AssemblyResource(uri);

            return(resource);
        }
Пример #5
0
        public override void SetToolbars(IToolbarDefinitionContext context)
        {
            var group = context.CreateToolbarGroup(MainFormToolbarNames.MainToolsGroup, "MainTools", null);

            group.AddToolbar(new WinformToolbar(
                                 MainFormToolbarNames.SaveTool,
                                 AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.Save16.png"),
                                 AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.Save16_dis.png"),
                                 false,
                                 "保存",
                                 group
                                 ));
            group.AddToolbar(new WinformToolbar(
                                 MainFormToolbarNames.UndoTool,
                                 AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.Undo16.png"),
                                 AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.Undo16_dis.png"),
                                 false,
                                 "撤销",
                                 group
                                 ));
            group.AddToolbar(new WinformToolbar(
                                 MainFormToolbarNames.RedoTool,
                                 AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.Redo16.png"),
                                 AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.Redo16_dis.png"),
                                 false,
                                 "重做",
                                 group
                                 ));
        }
Пример #6
0
        public string GetTemplateCode(object obj, string templatePropertyName)
        {
            var core = obj as InputCore;
            var type = core.Type;

            return(AssemblyResource.LoadText(string.Format("CodeArt.Web.XamlControls.Metronic.Input.InputCore.{0}Template.html,CodeArt.Web.XamlControls.Metronic", type.FirstToUpper())));
        }
Пример #7
0
        public void Test_Custormer_uri()
        {
            var name = "assembly://" + typeof(Xml).Assembly.FullName + "/XmlFiles/" + "hasResourceIncludes.xml";

            Assert.AreEqual(name, "assembly://Castle.Windsor.Tests, Version=0.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc/XmlFiles/hasResourceIncludes.xml");
            var uri = new CustomUri(name);

            Assert.AreEqual(uri.Path, "/XmlFiles/hasResourceIncludes.xml");
            var resource     = new AssemblyResource(uri);
            var assemblyName = uri.Host;

            Assert.AreEqual(assemblyName, "Castle.Windsor.Tests, Version=0.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc");
            var indexOfComma = assemblyName.IndexOf(',');

            assemblyName = indexOfComma < 0 ? assemblyName : assemblyName.Substring(0, indexOfComma);
            Assert.AreEqual(assemblyName, "Castle.Windsor.Tests");
            var resourcePath = string.Format(CultureInfo.CurrentCulture, "{0}{1}", assemblyName,
                                             uri.Path.Replace('/', '.'));

            Assert.AreEqual(resourcePath, "Castle.Windsor.Tests.XmlFiles.hasResourceIncludes.xml");
            var assembly = Assembly.Load(assemblyName);

            Assert.IsNotNull(assembly);
            var names = assembly.GetManifestResourceNames();

            Assert.AreEqual(names.Length, 60);
            foreach (var s in names)
            {
                Console.WriteLine(s);
            }
            var nameFound = names.FirstOrDefault(x => string.Compare(resourcePath, x, StringComparison.OrdinalIgnoreCase) == 0);

            Assert.IsNotNull(nameFound);
        }
Пример #8
0
        public void FullReload()
        {
            // This is an HTML5 Canvas/JS spinner icon. It is awesome
            // and renders immediately, going away when the store loads.
            LoadString(AssemblyResource.GetFileContents("loading.html"),
                       "text/html", "UTF-8", null);

            // Here we download and save for later injection some JavaScript
            // to fix-up the Amazon pages. We don't store this locally since
            // it may need to be updated if Amazon's page structure changes.
            // We're mainly concerned about hiding the "You don't have Flash"
            // messages, since we do the streaming of previews natively.
            if (FixupJavascriptUrl != null && !fixup_javascript_fetched)
            {
                fixup_javascript_fetched = true;
                new HttpStringDownloader
                {
                    Uri      = new Uri(FixupJavascriptUrl),
                    Finished = d => {
                        if (d.State.Success)
                        {
                            fixup_javascript = d.Content;
                        }
                        LoadHome();
                    },
                    AcceptContentTypes = new [] { "text/javascript" }
                }.Start();
            }
            else
            {
                LoadHome();
            }
        }
Пример #9
0
        private XmlDocument GetValidatedXmlResource(string resourceExtension)
        {
            AssemblyResource validationSchema = new AssemblyResource("assembly://Spring.Core/Spring.Validation.Config/spring-validation-1.3.xsd");
            AssemblyResource objectsSchema    = new AssemblyResource("assembly://Spring.Core/Spring.Objects.Factory.Xml/spring-objects-1.3.xsd");

            return(TestResourceLoader.GetXmlValidated(this, resourceExtension, objectsSchema, validationSchema));
        }
Пример #10
0
        private static void WriteBytes(string physicalPath, string assetPath)
        {
            IOUtil.CreateFileDirectory(physicalPath);
            var bytes = AssemblyResource.LoadBytes(assetPath);

            File.WriteAllBytes(physicalPath, bytes);
        }
Пример #11
0
        static void Main(string[] args)
        {
            IResource resource = new AssemblyResource("assembly://CslaDemo.App/Configs/CastleActiveRecordImpl.config");
            //IResource resource = new AssemblyResource("assembly://CslaDemo.App/Configs/DefaultImpl.config");
            IWindsorContainer container = new WindsorContainer(new XmlInterpreter(resource));

            IRepository <UserEntity> userRepository = container.Resolve <IRepository <UserEntity> >();

            IContainerService <UserEntity, PostEntity> userPostContainer = container.Resolve <IContainerService <UserEntity, PostEntity> >();
            IContainerService <UserEntity, BlogEntity> userBlogContainer = container.Resolve <IContainerService <UserEntity, BlogEntity> >();

            IBusinessService <UserEntity> userService = container.Resolve <IBusinessService <UserEntity> >();

            userService.Initialize(container);

            UserEntity localUser = new UserEntity();

            localUser.Username = Guid.NewGuid().ToString();
            localUser.Password = "******";

            PostEntity p1 = new PostEntity
            {
                Category    = "C1",
                Contents    = "This is post 1",
                CreatedDate = DateTime.Now,
                Title       = "Post1",
            };
            PostEntity p2 = new PostEntity
            {
                Category    = "C2",
                Contents    = "This is post 2",
                CreatedDate = DateTime.Now,
                Title       = "Post2"
            };

            BlogEntity b1 = new BlogEntity
            {
                Author = "Huan",
                Name   = "B1"
            };
            BlogEntity b2 = new BlogEntity
            {
                Author = "Huan",
                Name   = "B2"
            };

            b1.Posts.Add(p1);
            b2.Posts.Add(p2);

            userBlogContainer.AddTo(localUser, b1, b2);

            userService.Save(localUser);
            Console.WriteLine("Insert... done");
            Console.ReadKey();

            userRepository.Delete(localUser);
            Console.WriteLine("Delete... done");
            Console.ReadKey();
        }
 public override void SetMenus(IMenuDefinitionContext context)
 {
     //filePage
     var filePageMenu = context.CreateMenu(MainFormMenuNames.FilePageMenu, MenuType.Page, "文件", "", null,
                                           AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.file16.png"));
     //fileGroup
     var filePageGroup = filePageMenu.CreateChildMenu(MainFormMenuNames.FilePageGroupMenu, MenuType.Group, "文件");
     var fileNew       = filePageGroup.CreateChildMenu(MainFormMenuNames.FilePageGroup_FileNew, MenuType.Button, "新建", "", null
                                                       , AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.New.png"));
     var fileOpen = filePageGroup.CreateChildMenu(MainFormMenuNames.FilePageGroup_FileOpen, MenuType.Button, "打开", "", null
                                                  , AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.Open.png"),
                                                  menuActionType: AbpType.GetType <IMenuAction>(typeof(Open)));
     var fileSave = filePageGroup.CreateChildMenu(MainFormMenuNames.FilePageGroup_FileSave, MenuType.Button, "保存", "", null
                                                  , AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.Save32.png")
                                                  , AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.Save_dis32.png")
                                                  , 0, false);
     var fileSaveAs = filePageGroup.CreateChildMenu(MainFormMenuNames.FilePageGroup_FileSaveAs, MenuType.Button, "另存为", "", null
                                                    , AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.SaveAs.png"),
                                                    AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.Save_dis32.png")
                                                    , 0, false);
     var fileQuickPrint = filePageGroup.CreateChildMenu(MainFormMenuNames.FilePageGroup_FileQuickPrint, MenuType.Button, "快速打印", "", null
                                                        , AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.QuickPrint.png"));
     var filePrint = filePageGroup.CreateChildMenu(MainFormMenuNames.FilePageGroup_FilePrint, MenuType.Button, "打印", "", null
                                                   , AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.Print.png"));
     var filePrintPreview = filePageGroup.CreateChildMenu(MainFormMenuNames.FilePageGroup_FilePrintPreview, MenuType.Button, "打印预览", "", null
                                                          , AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.PrintPreview32.png"),
                                                          AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.PrintPreview_dis32.png")
                                                          );
     //document info
     var documentInfoGroup = filePageMenu.CreateChildMenu(MainFormMenuNames.FilePageDocumentInfoGroupMenu, MenuType.Group, "文档");
     var documentInfo      = documentInfoGroup.CreateChildMenu(MainFormMenuNames.FilePageDocumentInfoGroup_Document, MenuType.Button, "文档信息", "", null
                                                               , AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.DocumentInfo.png"));
     //lecense info
     var LicenseInfoGroup = filePageMenu.CreateChildMenu(MainFormMenuNames.LicenseGroupMenu, MenuType.Group, "授权");
     var licenseInfo      = LicenseInfoGroup.CreateChildMenu(MainFormMenuNames.LicenseGroup_LicenseInfo, MenuType.Button, "授权信息", "", null
                                                             , AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.LicenseInfo.png"));
     var powerBy = LicenseInfoGroup.CreateChildMenu(MainFormMenuNames.LicenseGroup_PowerBy, MenuType.Button, "谴责声明", "", null
                                                    , AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.PowerBy.png"));
     //help
     var helpGroup = filePageMenu.CreateChildMenu(MainFormMenuNames.HelpGroupMenu, MenuType.Group, "帮助");
     var about     = helpGroup.CreateChildMenu(MainFormMenuNames.HelpGroup_About, MenuType.Button, "关于", "", null
                                               , AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.About.png"));
     var update = helpGroup.CreateChildMenu(MainFormMenuNames.HelpGroup_Update, MenuType.Button, "更新检查", "", null
                                            , AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.Update.png"));
     var helpDown = helpGroup.CreateChildMenu(MainFormMenuNames.HelpGroup_HelpDown, MenuType.Button, "下载帮助", "", null
                                              , AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.HelpDown.png"));
     var feedBack = helpGroup.CreateChildMenu(MainFormMenuNames.HelpGroup_FeedBack, MenuType.Button, "反馈", "", null
                                              , AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.FeedBack.png"));
     //setting page
     var settingPageMenu = context.CreateMenu(MainFormMenuNames.SettingPageMenu, MenuType.Page, "设置", "", null,
                                              AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.Setting.png"));
     //systemSettingGroup
     var systemSettingGroup = settingPageMenu.CreateChildMenu(MainFormMenuNames.SystemSettingGroupMenu, MenuType.Group, "系统设置");
     var uiDesign           = systemSettingGroup.CreateChildMenu(MainFormMenuNames.SystemSettingGroup_UiDesign, MenuType.Button, "界面设置", "", null
                                                                 , AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.UIDesign.png"));
     var menuOrder = systemSettingGroup.CreateChildMenu(MainFormMenuNames.SystemSettingGroup_MenuOrderSetting, MenuType.Button, "菜单设置", "", null
                                                        , AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Icons.MenuOrderSetting.png"),
                                                        menuActionType: AbpType.GetType <IMenuAction>(typeof(Setting)));
 }
        public override void SetMenus(IMenuDefinitionContext context)
        {
            var settingPageMenu = context.CreateMenu(DataSyncMenuNames.SettingPageMenu, MenuType.Page, "设置", "", null,
                                                     AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "CadastralManagementDataSync.Icons.Setting16.png"));

            var systemSettingGroup = settingPageMenu.CreateChildMenu(DataSyncMenuNames.SystemSettingGroupMenu, MenuType.Group, "系统设置");

            systemSettingGroup.CreateChildMenu(DataSyncMenuNames.SystemSettingGroup_DataSync, MenuType.Button, "数据同步设置", "数据同步设置", null,
                                               AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "CadastralManagementDataSync.Icons.DataSync.png"),
                                               AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "CadastralManagementDataSync.Icons.DataSync_dis.png"),
                                               0, true, MultiTenancySides.Host | MultiTenancySides.Tenant, null
                                               //,m =>
                                               //{
                                               //    MenuActions.DataSyncSettingClick(iocManager, formIOSchemeManager, dataSyncSettingManager, Logger);
                                               //}
                                               );

            var DataSyncPageMenu = context.CreateMenu(DataSyncMenuNames.DataSyncPageMenu, MenuType.Page, "数据同步", "", null,
                                                      AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "CadastralManagementDataSync.Icons.DataSync16.png"));
            var DataSynvSqlCreateMenu = DataSyncPageMenu.CreateChildMenu(DataSyncMenuNames.DataSyncPageSqlCreateGroupMenu, MenuType.Group, "数据同步");

            DataSynvSqlCreateMenu.CreateChildMenu(DataSyncMenuNames.DataSyncPageSqlCreateGroupInnerDataInitMenu, MenuType.Button, "内网数据库初始化", "内网数据库初始化", null,
                                                  AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "CadastralManagementDataSync.Icons.innerDB32.png"),
                                                  null,
                                                  0, true, MultiTenancySides.Host | MultiTenancySides.Tenant, null
                                                  //, m => {
                                                  //    MenuActions.DoDBTriggerOperationCilck(iocManager, DataSyncDirection.InnerDataSync, triggerOperation, Logger);
                                                  //}
                                                  );
            DataSynvSqlCreateMenu.CreateChildMenu(DataSyncMenuNames.DataSyncPageSqlCreateGroupOuterDataInitMenu, MenuType.Button, "外网数据库初始化", "外网数据库初始化", null,
                                                  AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "CadastralManagementDataSync.Icons.outDB32.png"),
                                                  null,
                                                  0, true, MultiTenancySides.Host | MultiTenancySides.Tenant, null
                                                  //, m => {
                                                  //    MenuActions.DoDBTriggerOperationCilck(iocManager, DataSyncDirection.OuterDataSync, triggerOperation, Logger);
                                                  //}
                                                  );

            var DataSynvDoDataSyncMenu = DataSyncPageMenu.CreateChildMenu(DataSyncMenuNames.DataSyncPageDoDataSyncGroupMenu, MenuType.Group, "同步操作");

            DataSynvDoDataSyncMenu.CreateChildMenu(DataSyncMenuNames.DataSyncPageDoDataSyncGroupInnerDoDataSyncMenu, MenuType.Button, "内网数据同步", "内网数据和本地数据同步", null,
                                                   AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "CadastralManagementDataSync.Icons.DataOut32.png"),
                                                   null,
                                                   0, true, MultiTenancySides.Host | MultiTenancySides.Tenant, null
                                                   //,  m =>
                                                   //{
                                                   //    MenuActions.DataSyncOperationClick(iocManager, DataSyncDirection.InnerDataSync, dataCapture, dataSyncOperator, Logger);
                                                   //}
                                                   );
            DataSynvDoDataSyncMenu.CreateChildMenu(DataSyncMenuNames.DataSyncPageDoDataSyncGroupOuterDoDataSyncMenu, MenuType.Button, "外网数据同步", "外网数据和本地数据同步", null,
                                                   AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "CadastralManagementDataSync.Icons.DataIn32.png"),
                                                   null,
                                                   0, true, MultiTenancySides.Host | MultiTenancySides.Tenant, null
                                                   //, m =>
                                                   //  {
                                                   //      MenuActions.DataSyncOperationClick(iocManager, DataSyncDirection.OuterDataSync, dataCapture, dataSyncOperator, Logger);
                                                   //  }
                                                   );
        }
		public void SetUp()
		{
			var configurationStore = new DefaultConfigurationStore();
			var resource = new AssemblyResource("Castle.Facilities.NHibernateIntegration.Tests/Issues/Facilities117/facility.xml");
			var xmlInterpreter = new XmlInterpreter(resource);
			xmlInterpreter.ProcessResource(resource, configurationStore);
			facilityCfg = configurationStore.GetFacilityConfiguration("nhibernatefacility").Children["factory"];
		}
Пример #15
0
        /// <summary>
        /// Create from assembly resource
        /// </summary>
        /// <param name="resource"></param>
        /// <param name="encoding"></param>
        /// <returns></returns>
        public static ITemplate FromResource(AssemblyResource resource, Encoding encoding = null)
        {
            Expect.IsNotNull(resource, nameof(resource));

            var templateText = resource.ReadAllText(encoding);

            return(FromString(templateText));
        }
Пример #16
0
        public void MissingManifestResourceConfiguration()
        {
            var     store  = new DefaultConfigurationStore();
            var     source = new AssemblyResource("assembly://Castle.Windsor.Tests/missing_config.xml");
            IKernel kernel = new DefaultKernel();

            Assert.Throws <ConfigurationProcessingException>(() => new XmlInterpreter(source).ProcessResource(source, store, kernel));
        }
        public void AssemblyResourceAndIncludes()
        {
            IResource resource = new AssemblyResource("assembly://Castle.Windsor.Tests/Configuration2/resource_config_with_include.xml");

            container = new WindsorContainer(new XmlInterpreter(resource));

            AssertConfiguration();
        }
Пример #18
0
        /// <summary>
        /// This is to overcome an issue with the current NVelocity library, it seems the
        /// default runetime properties/directives (nvelocity.properties and directive.properties
        /// files) are not being properly located in  the library at load time. A jira should
        /// be filed but for now we attempt to do this on our own. Particularly our
        /// concern here is with several required properties which I don't want
        /// to require users to re-defined. e.g.,:
        /// <br/>
        ///
        /// Pre-requisites:<br/>
        /// resource.manager.class=NVelocity.Runtime.Resource.ResourceManagerImpl <br/>
        /// directive.manager=NVelocity.Runtime.Directive.DirectiveManager <br/>
        /// runtime.introspector.uberspect=NVelocity.Util.Introspection.UberspectImpl <br/>
        /// </summary>
        private static void LoadDefaultProperties(ExtendedProperties extendedProperties)
        {
            IResource defaultRuntimeProperties = new AssemblyResource("assembly://NVelocity/NVelocity.Runtime.Defaults/nvelocity.properties");
            IResource defaultRuntimeDirectives = new AssemblyResource("assembly://NVelocity/NVelocity.Runtime.Defaults/directive.properties");

            FillProperties(extendedProperties, defaultRuntimeProperties, true);
            FillProperties(extendedProperties, defaultRuntimeDirectives, true);
        }
Пример #19
0
        public void Setup()
        {
            NamespaceParserRegistry.RegisterParser(typeof(RabbitNamespaceHandler));
            var resourceName = @"assembly://Spring.Messaging.Amqp.Rabbit.Tests/Spring.Messaging.Amqp.Rabbit.Tests.Config/" + typeof(RabbitNamespaceHandlerTests).Name + "-context.xml";
            var resource     = new AssemblyResource(resourceName);

            this.objectFactory = new XmlObjectFactory(resource);
        }
Пример #20
0
		public override void OnSetUp()
		{
			var configurationStore = new DefaultConfigurationStore();
			var resource = new AssemblyResource("Castle.Facilities.NHibernateIntegration.Tests/Issues/Facilities116/facility.xml");
			var xmlInterpreter = new XmlInterpreter(resource);
			xmlInterpreter.ProcessResource(resource, configurationStore);
			configuration = configurationStore.GetFacilityConfiguration("nhibernatefacility").Children["factory"];
			configurationBuilder = new PersistentConfigurationBuilder();
		}
Пример #21
0
        /// <summary>
        /// Load from assembly resource
        /// </summary>
        /// <param name="resource"></param>
        /// <returns></returns>
        public static Sitemap FromResource(AssemblyResource resource)
        {
            Expect.IsNotNull(resource, nameof(resource));

            using (var ms = resource.OpenRead())
            {
                return(FromStream(ms));
            }
        }
Пример #22
0
        public void TestIllegalAnonymousQueue()
        {
            var resourceName =
                @"assembly://Spring.Messaging.Amqp.Rabbit.Tests/Spring.Messaging.Amqp.Rabbit.Tests.Config/"
                + typeof(QueueParserTests).Name + "IllegalAnonymous-context.xml";
            var resource = new AssemblyResource(resourceName);

            Assert.Throws <ObjectDefinitionStoreException>(() => new XmlObjectFactory(resource), "Parser fails to reject invalid state of anonymous queues");
        }
Пример #23
0
        /// <summary>
        /// Load from resource
        /// </summary>
        /// <param name="resource"></param>
        /// <param name="encoding"></param>
        public void LoadResource(AssemblyResource resource, Encoding encoding = null)
        {
            Expect.IsNotNull(resource, nameof(resource));
            encoding = encoding ?? EncodingUtil.DefaultEncoding;

            string content = resource.ReadAllText(encoding);

            LoadString(content);
        }
        public void SetUp()
        {
            var configurationStore = new DefaultConfigurationStore();
            var resource           = new AssemblyResource("Castle.Facilities.NHibernateIntegration.Tests/Issues/Facilities117/facility.xml");
            var xmlInterpreter     = new XmlInterpreter(resource);

            xmlInterpreter.ProcessResource(resource, configurationStore);
            facilityCfg = configurationStore.GetFacilityConfiguration("nhibernatefacility").Children["factory"];
        }
        /// <summary>
        /// Load from resource
        /// </summary>
        /// <param name="resource"></param>
        /// <returns></returns>
        public static JsonResourceProvider FromResource(AssemblyResource resource)
        {
            Expect.IsNotNull(resource, nameof(resource));

            using (var stream = resource.OpenRead())
            {
                return(FromStream(stream));
            }
        }
Пример #26
0
        public static XmlObjectFactory LoadMessagingConfig()
        {
            NamespaceParserRegistry.RegisterParser(typeof(RedisNamespaceHandler));

            const string resourceName = "assembly://RedisMessaging.Tests/RedisMessaging.Tests.Configs/Messaging.config";

            var resource = new AssemblyResource(resourceName);

            return(new XmlObjectFactory(resource));
        }
        public override void OnSetUp()
        {
            var configurationStore = new DefaultConfigurationStore();
            var resource           = new AssemblyResource("Castle.Facilities.NHibernateIntegration.Tests/Issues/Facilities116/facility.xml");
            var xmlInterpreter     = new XmlInterpreter(resource);

            xmlInterpreter.ProcessResource(resource, configurationStore, new DefaultKernel());
            configuration        = configurationStore.GetFacilityConfiguration(typeof(NHibernateFacility).FullName).Children["factory"];
            configurationBuilder = new PersistentConfigurationBuilder();
        }
Пример #28
0
        public void Setup()
        {
            NamespaceParserRegistry.RegisterParser(typeof(RabbitNamespaceHandler));
            var resourceName = @"assembly://Spring.Messaging.Amqp.Rabbit.Tests/Spring.Messaging.Amqp.Rabbit.Tests.Config/" + typeof(ListenerContainerParserTests).Name + "-context.xml";
            var resource     = new AssemblyResource(resourceName);

            this.objectFactory = new XmlObjectFactory(resource);

            // ((IConfigurableObjectFactory)objectFactory).setObjectExpressionResolver(new StandardObjectExpressionResolver());
        }
Пример #29
0
        public static XmlObjectFactory LoadConfig(string configConventionPrefix, int configId)
        {
            NamespaceParserRegistry.RegisterParser(typeof(RedisNamespaceHandler));

            var resourceName = $"assembly://RedisMessaging.Tests/RedisMessaging.Tests.Configs.{configConventionPrefix}/{configConventionPrefix}-{configId}.config";

            var resource = new AssemblyResource(resourceName);

            return(new XmlObjectFactory(resource));
        }
Пример #30
0
        public void Write()
        {
            IResource body = new AssemblyResource("assembly://Spring.Rest.Tests/Spring.Http.Converters/Resource.txt");

            MockHttpOutputMessage message = new MockHttpOutputMessage();

            converter.Write(body, null, message);

            Assert.IsTrue(message.GetBodyAsBytes().Length > 0, "Invalid result");
            Assert.AreEqual(new MediaType("text", "plain"), message.Headers.ContentType, "Invalid content-type");
        }
		/// <summary>
		/// Depending on the resource type, <see cref="AssemblyResource"/> or <see cref="FileResource"/> is decorated.
		/// </summary>
		/// <param name="resource"></param>
		public FileAssemblyResource(string resource)
		{
			if (File.Exists(resource))
			{
				innerResource = new FileResource(resource);
			}
			else
			{
				innerResource = new AssemblyResource(resource);
			}
		}
 /// <summary>
 /// Depending on the resource type, <see cref="AssemblyResource"/> or <see cref="FileResource"/> is decorated.
 /// </summary>
 /// <param name="resource"></param>
 public FileAssemblyResource(string resource)
 {
     if (File.Exists(resource))
     {
         innerResource = new FileResource(resource);
     }
     else
     {
         innerResource = new AssemblyResource(resource);
     }
 }
Пример #33
0
 public ResourceItem(string _fullName, IResource _resource) : base(_fullName)
 {
     resource = _resource;
     if (resource.ResourceMetaData.Icon != null)
     {
         image = resource.ResourceMetaData.Icon;
     }
     else
     {
         image = AssemblyResource.GetResourceImage(Assembly.GetExecutingAssembly(), "ZtgeoGISDesktop.Winform.Icons.ResourceFile16.png");
     }
 }
Пример #34
0
		void AddResource (AssemblyResource res)
		{
			if (RootContext.Resources == null) {
				RootContext.Resources = new List<AssemblyResource> ();
				RootContext.Resources.Add (res);
				return;
			}

			if (RootContext.Resources.Contains (res)) {
				ctx.Report.Error (1508, "The resource identifier `{0}' has already been used in this assembly", res.Name);
				return;
			}

			RootContext.Resources.Add (res);
		}
Пример #35
0
		void AddResource (AssemblyResource res, CompilerSettings settings)
		{
			if (settings.Resources == null) {
				settings.Resources = new List<AssemblyResource> ();
				settings.Resources.Add (res);
				return;
			}

			if (settings.Resources.Contains (res)) {
				report.Error (1508, "The resource identifier `{0}' has already been used in this assembly", res.Name);
				return;
			}

			settings.Resources.Add (res);
		}
Пример #36
0
		//
		// This parses the -arg and /arg options to the compiler, even if the strings
		// in the following text use "/arg" on the strings.
		//
		ParseResult ParseOption (string option, ref string[] args, CompilerSettings settings)
		{
			int idx = option.IndexOf (':');
			string arg, value;

			if (idx == -1) {
				arg = option;
				value = "";
			} else {
				arg = option.Substring (0, idx);

				value = option.Substring (idx + 1);
			}

			switch (arg.ToLowerInvariant ()) {
			case "/nologo":
				return ParseResult.Success;

			case "/t":
			case "/target":
				bool is_dotnet = true;
				switch (value) {
				case "exe":
					settings.Target = Target.Exe;
					break;

				case "winexe":
					settings.Target = Target.WinExe;
					break;

				case "library":
					settings.Target = Target.Library;
					settings.TargetExt = ".dll";
					break;

				case "module":
					settings.Target = Target.Module;
					settings.TargetExt = ".netmodule";
					break;

				case "javascript":
					settings.Target = Target.JavaScript;
					settings.TargetExt = ".js";
					settings.AddConditionalSymbol ("TARGET_JS");
					is_dotnet = false;
					break;

				case "cpp":
					settings.Target = Target.Cpp;
					settings.TargetExt = ".cpp";
					settings.AddConditionalSymbol ("TARGET_CPP");
					is_dotnet = false;
					break;

				default:
					report.Error (2019, "Invalid target type for -target. Valid options are `exe', `winexe', `library', `module', `javascript' or `cpp'");
					return ParseResult.Error;
				}
				if (is_dotnet) {
					settings.AddConditionalSymbol ("TARGET_IL");
				}
				return ParseResult.Success;

			case "/out":
				if (value.Length == 0) {
					Error_RequiresFileName (option);
					return ParseResult.Error;
				}
				settings.OutputFile = value;
				return ParseResult.Success;

			case "/o":
			case "/o+":
			case "/optimize":
			case "/optimize+":
				settings.Optimize = true;
				return ParseResult.Success;

			case "/o-":
			case "/optimize-":
				settings.Optimize = false;
				return ParseResult.Success;

			// TODO: Not supported by csc 3.5+
			case "/incremental":
			case "/incremental+":
			case "/incremental-":
				// nothing.
				return ParseResult.Success;

			case "/d":
			case "/define": {
					if (value.Length == 0) {
						Error_RequiresArgument (option);
						return ParseResult.Error;
					}

					foreach (string d in value.Split (argument_value_separator)) {
						string conditional = d.Trim ();
						if (!Tokenizer.IsValidIdentifier (conditional)) {
							report.Warning (2029, 1, "Invalid conditional define symbol `{0}'", conditional);
							continue;
						}

						settings.AddConditionalSymbol (conditional);
					}
					return ParseResult.Success;
				}

			case "/bugreport":
				//
				// We should collect data, runtime, etc and store in the file specified
				//
				output.WriteLine ("To file bug reports, please visit: http://www.mono-project.com/Bugs");
				return ParseResult.Success;

			case "/pkg": {
					string packages;

					if (value.Length == 0) {
						Error_RequiresArgument (option);
						return ParseResult.Error;
					}
					packages = String.Join (" ", value.Split (new Char[] { ';', ',', '\n', '\r' }));
					string pkgout = Driver.GetPackageFlags (packages, report);

					if (pkgout == null)
						return ParseResult.Error;

					string[] xargs = pkgout.Trim (new Char[] { ' ', '\n', '\r', '\t' }).Split (new Char[] { ' ', '\t' });
					args = AddArgs (args, xargs);
					return ParseResult.Success;
				}

			case "/linkres":
			case "/linkresource":
			case "/res":
			case "/resource":
				AssemblyResource res = null;
				string[] s = value.Split (argument_value_separator, StringSplitOptions.RemoveEmptyEntries);
				switch (s.Length) {
				case 1:
					if (s[0].Length == 0)
						goto default;
					res = new AssemblyResource (s[0], Path.GetFileName (s[0]));
					break;
				case 2:
					res = new AssemblyResource (s[0], s[1]);
					break;
				case 3:
					if (s[2] != "public" && s[2] != "private") {
						report.Error (1906, "Invalid resource visibility option `{0}'. Use either `public' or `private' instead", s[2]);
						return ParseResult.Error;
					}
					res = new AssemblyResource (s[0], s[1], s[2] == "private");
					break;
				default:
					report.Error (-2005, "Wrong number of arguments for option `{0}'", option);
					return ParseResult.Error;
				}

				if (res != null) {
					res.IsEmbeded = arg[1] == 'r' || arg[1] == 'R';
					AddResource (res, settings);
				}

				return ParseResult.Success;

			case "/recurse":
				if (value.Length == 0) {
					Error_RequiresFileName (option);
					return ParseResult.Error;
				}
				ProcessSourceFiles (value, true, settings.SourceFiles);
				return ParseResult.Success;

			case "/r":
			case "/reference": {
					if (value.Length == 0) {
						Error_RequiresFileName (option);
						return ParseResult.Error;
					}

					string[] refs = value.Split (argument_value_separator);
					foreach (string r in refs) {
						if (r.Length == 0)
							continue;

						string val = r;
						int index = val.IndexOf ('=');
						if (index > -1) {
							string alias = r.Substring (0, index);
							string assembly = r.Substring (index + 1);
							AddAssemblyReference (alias, assembly, settings);
							if (refs.Length != 1) {
								report.Error (2034, "Cannot specify multiple aliases using single /reference option");
								return ParseResult.Error;
							}
						} else {
							settings.AssemblyReferences.Add (val);
						}
					}
					return ParseResult.Success;
				}
			case "/addmodule": {
					if (value.Length == 0) {
						Error_RequiresFileName (option);
						return ParseResult.Error;
					}

					string[] refs = value.Split (argument_value_separator);
					foreach (string r in refs) {
						settings.Modules.Add (r);
					}
					return ParseResult.Success;
				}
			case "/win32res": {
					if (value.Length == 0) {
						Error_RequiresFileName (option);
						return ParseResult.Error;
					}

					if (settings.Win32IconFile != null)
						report.Error (1565, "Cannot specify the `win32res' and the `win32ico' compiler option at the same time");

					settings.Win32ResourceFile = value;
					return ParseResult.Success;
				}
			case "/win32icon": {
					if (value.Length == 0) {
						Error_RequiresFileName (option);
						return ParseResult.Error;
					}

					if (settings.Win32ResourceFile != null)
						report.Error (1565, "Cannot specify the `win32res' and the `win32ico' compiler option at the same time");

					settings.Win32IconFile = value;
					return ParseResult.Success;
				}
			case "/doc": {
					if (value.Length == 0) {
						Error_RequiresFileName (option);
						return ParseResult.Error;
					}

					settings.DocumentationFile = value;
					return ParseResult.Success;
				}
			case "/lib": {
					string[] libdirs;

					if (value.Length == 0) {
						return ParseResult.Error;
					}

					libdirs = value.Split (argument_value_separator);
					foreach (string dir in libdirs)
						settings.ReferencesLookupPaths.Add (dir);
					return ParseResult.Success;
				}

			case "/debug-":
				settings.GenerateDebugInfo = false;
				return ParseResult.Success;

			case "/debug":
				if (value.Equals ("full", StringComparison.OrdinalIgnoreCase) || value.Equals ("pdbonly", StringComparison.OrdinalIgnoreCase) || idx < 0) {
					settings.GenerateDebugInfo = true;
					return ParseResult.Success;
				}

				if (value.Length > 0) {
					report.Error (1902, "Invalid debug option `{0}'. Valid options are `full' or `pdbonly'", value);
				} else {
					Error_RequiresArgument (option);
				}

				return ParseResult.Error;

			case "/debug+":
				settings.GenerateDebugInfo = true;
				return ParseResult.Success;

			case "/checked":
			case "/checked+":
				settings.Checked = true;
				return ParseResult.Success;

			case "/checked-":
				settings.Checked = false;
				return ParseResult.Success;

			case "/clscheck":
			case "/clscheck+":
				settings.VerifyClsCompliance = true;
				return ParseResult.Success;

			case "/clscheck-":
				settings.VerifyClsCompliance = false;
				return ParseResult.Success;

			case "/unsafe":
			case "/unsafe+":
				settings.Unsafe = true;
				return ParseResult.Success;

			case "/unsafe-":
				settings.Unsafe = false;
				return ParseResult.Success;

			case "/warnaserror":
			case "/warnaserror+":
				if (value.Length == 0) {
					settings.WarningsAreErrors = true;
					parser_settings.WarningsAreErrors = true;
				} else {
					if (!ProcessWarningsList (value, v => settings.AddWarningAsError (v)))
						return ParseResult.Error;
				}
				return ParseResult.Success;

			case "/warnaserror-":
				if (value.Length == 0) {
					settings.WarningsAreErrors = false;
				} else {
					if (!ProcessWarningsList (value, v => settings.AddWarningOnly (v)))
						return ParseResult.Error;
				}
				return ParseResult.Success;

			case "/warn":
			case "/w":
				if (value.Length == 0) {
					Error_RequiresArgument (option);
					return ParseResult.Error;
				}

				SetWarningLevel (value, settings);
				return ParseResult.Success;

			case "/nowarn":
				if (value.Length == 0) {
					Error_RequiresArgument (option);
					return ParseResult.Error;
				}

				if (!ProcessWarningsList (value, v => settings.SetIgnoreWarning (v)))
					return ParseResult.Error;

				return ParseResult.Success;

			case "/noconfig":
				settings.LoadDefaultReferences = false;
				return ParseResult.Success;

			case "/platform":
				if (value.Length == 0) {
					Error_RequiresArgument (option);
					return ParseResult.Error;
				}

				switch (value.ToLowerInvariant ()) {
				case "arm":
					settings.Platform = Platform.Arm;
					break;
				case "anycpu":
					settings.Platform = Platform.AnyCPU;
					break;
				case "x86":
					settings.Platform = Platform.X86;
					break;
				case "x64":
					settings.Platform = Platform.X64;
					break;
				case "itanium":
					settings.Platform = Platform.IA64;
					break;
				case "anycpu32bitpreferred":
					settings.Platform = Platform.AnyCPU32Preferred;
					break;
				default:
					report.Error (1672, "Invalid -platform option `{0}'. Valid options are `anycpu', `anycpu32bitpreferred', `arm', `x86', `x64' or `itanium'",
						value);
					return ParseResult.Error;
				}

				return ParseResult.Success;

			case "/sdk":
				if (value.Length == 0) {
					Error_RequiresArgument (option);
					return ParseResult.Error;
				}

				settings.SdkVersion = value;
				return ParseResult.Success;

			// We just ignore this.
			case "/errorreport":
			case "/filealign":
				if (value.Length == 0) {
					Error_RequiresArgument (option);
					return ParseResult.Error;
				}

				return ParseResult.Success;

            // We just ignore this.
            case "/errorendlocation":
            case "/highentropyva-":
            case "/highentropyva+":
            case "/highentropyva":
            case "/utf8output":
                return ParseResult.Success;

            // We just ignore this.
            case "/preferreduilang":
                switch (value.ToLowerInvariant())
                {
                    default:
                        return ParseResult.Success;
                }
                   
			case "/helpinternal":
				OtherFlags ();
				return ParseResult.Stop;

			case "/help":
			case "/?":
				Usage ();
				return ParseResult.Stop;

			case "/main":
			case "/m":
				if (value.Length == 0) {
					Error_RequiresArgument (option);
					return ParseResult.Error;
				}
				settings.MainClass = value;
				return ParseResult.Success;

			case "/nostdlib":
			case "/nostdlib+":
				settings.StdLib = false;
				return ParseResult.Success;

			case "/nostdlib-":
				settings.StdLib = true;
				return ParseResult.Success;

			case "/fullpaths":
				settings.ShowFullPaths = true;
				return ParseResult.Success;

			case "/keyfile":
				if (value.Length == 0) {
					Error_RequiresFileName (option);
					return ParseResult.Error;
				}

				settings.StrongNameKeyFile = value;
				return ParseResult.Success;

			case "/keycontainer":
				if (value.Length == 0) {
					Error_RequiresArgument (option);
					return ParseResult.Error;
				}

				settings.StrongNameKeyContainer = value;
				return ParseResult.Success;

			case "/delaysign+":
			case "/delaysign":
				settings.StrongNameDelaySign = true;
				return ParseResult.Success;

			case "/delaysign-":
				settings.StrongNameDelaySign = false;
				return ParseResult.Success;

			case "/langversion":
				if (value.Length == 0) {
					Error_RequiresArgument (option);
					return ParseResult.Error;
				}

				switch (value.ToLowerInvariant ()) {
				case "iso-1":
					settings.Version = LanguageVersion.ISO_1;
					return ParseResult.Success;
				case "default":
					settings.Version = LanguageVersion.Default;
					return ParseResult.Success;
				case "iso-2":
					settings.Version = LanguageVersion.ISO_2;
					return ParseResult.Success;
				case "3":
					settings.Version = LanguageVersion.V_3;
					return ParseResult.Success;
				case "4":
					settings.Version = LanguageVersion.V_4;
					return ParseResult.Success;
				case "5":
					settings.Version = LanguageVersion.V_5;
					return ParseResult.Success;
				case "future":
					settings.Version = LanguageVersion.Future;
					return ParseResult.Success;
				}

				report.Error (1617, "Invalid -langversion option `{0}'. It must be `ISO-1', `ISO-2', `3', `4', `5', `Default' or `Future'", value);
				return ParseResult.Error;

			case "/codepage":
				if (value.Length == 0) {
					Error_RequiresArgument (option);
					return ParseResult.Error;
				}

				switch (value) {
				case "utf8":
					settings.Encoding = Encoding.UTF8;
					break;
				case "reset":
					settings.Encoding = Encoding.Default;
					break;
				default:
					try {
						settings.Encoding = Encoding.GetEncoding (int.Parse (value));
					} catch {
						report.Error (2016, "Code page `{0}' is invalid or not installed", value);
					}
					return ParseResult.Error;
				}
				return ParseResult.Success;

			default:
				return ParseResult.UnknownOption;
			}
		}
Пример #37
0
		//
		// This parses the -arg and /arg options to the compiler, even if the strings
		// in the following text use "/arg" on the strings.
		//
		bool CSCParseOption (string option, ref string [] args)
		{
			int idx = option.IndexOf (':');
			string arg, value;

			if (idx == -1){
				arg = option;
				value = "";
			} else {
				arg = option.Substring (0, idx);

				value = option.Substring (idx + 1);
			}

			switch (arg.ToLowerInvariant ()){
			case "/nologo":
				return true;

			case "/t":
			case "/target":
				switch (value){
				case "exe":
					RootContext.Target = Target.Exe;
					break;

				case "winexe":
					RootContext.Target = Target.WinExe;
					break;

				case "library":
					RootContext.Target = Target.Library;
					RootContext.TargetExt = ".dll";
					break;

				case "module":
					RootContext.Target = Target.Module;
					RootContext.TargetExt = ".netmodule";
					break;

				default:
					TargetUsage ();
					break;
				}
				return true;

			case "/out":
				if (value.Length == 0) {
					Error_RequiresFileName (option);
					break;
				}
				RootContext.OutputFile = value;
				return true;

			case "/o":
			case "/o+":
			case "/optimize":
			case "/optimize+":
				RootContext.Optimize = true;
				return true;

			case "/o-":
			case "/optimize-":
				RootContext.Optimize = false;
				return true;

			// TODO: Not supported by csc 3.5+
			case "/incremental":
			case "/incremental+":
			case "/incremental-":
				// nothing.
				return true;

			case "/d":
			case "/define": {
				if (value.Length == 0){
					Usage ();
					Environment.Exit (1);
				}

				foreach (string d in value.Split (argument_value_separator)) {
					string conditional = d.Trim ();
					if (!Tokenizer.IsValidIdentifier (conditional)) {
						Report.Warning (2029, 1, "Invalid conditional define symbol `{0}'", conditional);
						continue;
					}
					RootContext.AddConditional (conditional);
				}
				return true;
			}

			case "/bugreport":
				//
				// We should collect data, runtime, etc and store in the file specified
				//
				Console.WriteLine ("To file bug reports, please visit: http://www.mono-project.com/Bugs");
				return true;
#if !SMCS_SOURCE
			case "/pkg": {
				string packages;

				if (value.Length == 0){
					Usage ();
					Environment.Exit (1);
				}
				packages = String.Join (" ", value.Split (new Char [] { ';', ',', '\n', '\r'}));
				string pkgout = GetPackageFlags (packages, true, Report);
				
				if (pkgout != null){
					string [] xargs = pkgout.Trim (new Char [] {' ', '\n', '\r', '\t'}).
						Split (new Char [] { ' ', '\t'});
					args = AddArgs (args, xargs);
				}
				
				return true;
			}
#endif
			case "/linkres":
			case "/linkresource":
			case "/res":
			case "/resource":
				AssemblyResource res = null;			
				string[] s = value.Split (argument_value_separator);
				switch (s.Length) {
				case 1:
					if (s[0].Length == 0)
						goto default;
					res = new AssemblyResource (s [0], Path.GetFileName (s[0]));
					break;
				case 2:
					res = new AssemblyResource (s [0], s [1]);
					break;
				case 3:
					if (s [2] != "public" && s [2] != "private") {
						Report.Error (1906, "Invalid resource visibility option `{0}'. Use either `public' or `private' instead", s [2]);
						return true;
					}
					res = new AssemblyResource (s[0], s[1], s[2] == "private");
					break;
				default:
					Report.Error (-2005, "Wrong number of arguments for option `{0}'", option);
					break;
				}

				if (res != null) {
					res.IsEmbeded = arg [1] == 'r' || arg [1] == 'R';
					AddResource (res);
				}

				return true;
				
			case "/recurse":
				if (value.Length == 0) {
					Error_RequiresFileName (option);
					break;
				}
				ProcessSourceFiles (value, true); 
				return true;

			case "/r":
			case "/reference": {
				if (value.Length == 0) {
					Error_RequiresFileName (option);
					break;
				}

				string[] refs = value.Split (argument_value_separator);
				foreach (string r in refs){
					if (r.Length == 0)
						continue;

					string val = r;
					int index = val.IndexOf ('=');
					if (index > -1) {
						string alias = r.Substring (0, index);
						string assembly = r.Substring (index + 1);
						AddAssemblyReference (alias, assembly);
						if (refs.Length != 1) {
							Report.Error (2034, "Cannot specify multiple aliases using single /reference option");
							break;
						}
					} else {
						AddAssemblyReference (val);
					}
				}
				return true;
			}
			case "/addmodule": {
				if (value.Length == 0) {
					Error_RequiresFileName (option);
					break;
				}

				string[] refs = value.Split (argument_value_separator);
				foreach (string r in refs){
					RootContext.Modules.Add (r);
				}
				return true;
			}
			case "/win32res": {
				if (value.Length == 0) {
					Error_RequiresFileName (option);
					break;
				}
				
				if (RootContext.Win32IconFile != null)
					Report.Error (1565, "Cannot specify the `win32res' and the `win32ico' compiler option at the same time");

				RootContext.Win32ResourceFile = value;
				return true;
			}
			case "/win32icon": {
				if (value.Length == 0) {
					Error_RequiresFileName (option);
					break;
				}

				if (RootContext.Win32ResourceFile != null)
					Report.Error (1565, "Cannot specify the `win32res' and the `win32ico' compiler option at the same time");

				RootContext.Win32IconFile = value;
				return true;
			}
			case "/doc": {
				if (value.Length == 0) {
					Error_RequiresFileName (option);
					break;
				}

				RootContext.Documentation = new Documentation (value);
				return true;
			}
			case "/lib": {
				string [] libdirs;
				
				if (value.Length == 0) {
					Error_RequiresFileName (option);
					break;
				}

				libdirs = value.Split (argument_value_separator);
				foreach (string dir in libdirs)
					RootContext.ReferencesLookupPaths.Add (dir);
				return true;
			}

			case "/debug-":
				RootContext.GenerateDebugInfo = false;
				return true;
				
			case "/debug":
				if (value == "full" || value == "")
					RootContext.GenerateDebugInfo = true;

				return true;
				
			case "/debug+":
				RootContext.GenerateDebugInfo = true;
				return true;

			case "/checked":
			case "/checked+":
				RootContext.Checked = true;
				return true;

			case "/checked-":
				RootContext.Checked = false;
				return true;

			case "/clscheck":
			case "/clscheck+":
				RootContext.VerifyClsCompliance = true;
				return true;

			case "/clscheck-":
				RootContext.VerifyClsCompliance = false;
				return true;

			case "/unsafe":
			case "/unsafe+":
				RootContext.Unsafe = true;
				return true;

			case "/unsafe-":
				RootContext.Unsafe = false;
				return true;

			case "/warnaserror":
			case "/warnaserror+":
				if (value.Length == 0) {
					Report.WarningsAreErrors = true;
				} else {
					foreach (string wid in value.Split (argument_value_separator))
						Report.AddWarningAsError (wid);
				}
				return true;

			case "/warnaserror-":
				if (value.Length == 0) {
					Report.WarningsAreErrors = false;
				} else {
					foreach (string wid in value.Split (argument_value_separator))
						Report.RemoveWarningAsError (wid);
				}
				return true;

			case "/warn":
				if (value.Length == 0) {
					Error_RequiresArgument (option);
					break;
				}

				SetWarningLevel (value);
				return true;

			case "/nowarn": {
				if (value.Length == 0){
					Error_RequiresArgument (option);
					break;
				}

				var warns = value.Split (argument_value_separator);
				foreach (string wc in warns){
					try {
						if (wc.Trim ().Length == 0)
							continue;

						int warn = Int32.Parse (wc);
						if (warn < 1) {
							throw new ArgumentOutOfRangeException("warn");
						}
						Report.SetIgnoreWarning (warn);
					} catch {
						Report.Error (1904, "`{0}' is not a valid warning number", wc);
					}
				}
				return true;
			}

			case "/noconfig":
				RootContext.LoadDefaultReferences = false;
				return true;

			case "/platform":
				if (value.Length == 0) {
					Error_RequiresArgument (option);
					break;
				}

				switch (value.ToLower (CultureInfo.InvariantCulture)) {
				case "anycpu":
					RootContext.Platform = Platform.AnyCPU;
					break;
				case "x86":
					RootContext.Platform = Platform.X86;
					break;
				case "x64":
					RootContext.Platform = Platform.X64;
					break;
				case "itanium":
					RootContext.Platform = Platform.IA64;
					break;
				default:
					Report.Error (1672, "Invalid platform type for -platform. Valid options are `anycpu', `x86', `x64' or `itanium'");
					break;
				}

				return true;

				// We just ignore this.
			case "/errorreport":
			case "/filealign":
				if (value.Length == 0) {
					Error_RequiresArgument (option);
					break;
				}

				return true;
				
			case "/helpinternal":
				OtherFlags ();
				Environment.Exit(0);
				return true;
				
			case "/help":
			case "/?":
				Usage ();
				Environment.Exit (0);
				return true;

			case "/main":
			case "/m":
				if (value.Length == 0){
					Error_RequiresArgument (option);
					break;
				}
				RootContext.MainClass = value;
				return true;

			case "/nostdlib":
			case "/nostdlib+":
				RootContext.StdLib = false;
				return true;

			case "/nostdlib-":
				RootContext.StdLib = true;
				return true;

			case "/fullpaths":
				return true;

			case "/keyfile":
				if (value.Length == 0) {
					Error_RequiresFileName (option);
					break;
				}

				RootContext.StrongNameKeyFile = value;
				return true;

			case "/keycontainer":
				if (value.Length == 0) {
					Error_RequiresArgument (option);
					break;
				}

				RootContext.StrongNameKeyContainer = value;
				return true;
			case "/delaysign+":
			case "/delaysign":
				RootContext.StrongNameDelaySign = true;
				return true;
			case "/delaysign-":
				RootContext.StrongNameDelaySign = false;
				return true;

			case "/langversion":
				if (value.Length == 0) {
					Error_RequiresArgument (option);
					break;
				}

				switch (value.ToLowerInvariant ()) {
				case "iso-1":
					RootContext.Version = LanguageVersion.ISO_1;
					return true;	
				case "default":
					RootContext.Version = LanguageVersion.Default;
					RootContext.AddConditional ("__V2__");
					return true;
				case "iso-2":
					RootContext.Version = LanguageVersion.ISO_2;
					return true;
				case "3":
					RootContext.Version = LanguageVersion.V_3;
					return true;
				case "future":
					RootContext.Version = LanguageVersion.Future;
					return true;
				}

				Report.Error (1617, "Invalid -langversion option `{0}'. It must be `ISO-1', `ISO-2', `3' or `Default'", value);
				return true;

			case "/codepage":
				if (value.Length == 0) {
					Error_RequiresArgument (option);
					break;
				}

				switch (value) {
				case "utf8":
					RootContext.Encoding = new UTF8Encoding();
					break;
				case "reset":
					RootContext.Encoding = Encoding.Default;
					break;
				default:
					try {
						RootContext.Encoding = Encoding.GetEncoding (Int32.Parse (value));
					} catch {
						Report.Error (2016, "Code page `{0}' is invalid or not installed", value);
					}
					break;
				}
				return true;

			default:
				return false;
			}

			return true;
		}