Мне нравится использовать аддон ember-prop-types для этого случая использования. Это позволяет просматривать доступные свойства, типы каждого свойства, которое принимает компонент, а также устанавливать значения по умолчанию.
Вот небольшой пример того, что он может сделать:
import { Component } from '@ember/component';
import { PropTypes } from 'ember-prop-types';
export default Component.extend({
// Defines the properties for the component
propTypes: {
// Must be a 'string'
name: PropTypes.string,
// Must be a 'number' and it's required
age: PropTypes.number.isRequired,
// Must be one of the values in the array
favoriteColor: PropTypes.oneOf(['red', 'blue', 'green'])
},
// Defines the default values for the properties if not passed in
getDefaultProps () {
return {
name: 'New User',
age: 99
}
}
});
CLR, Загружающий механизм, использует LoadLibrary негласно, таким образом, это - то, что Вы наблюдаете: 2 блока не могут быть загружены в том же адресе. Теперь то, что часто имеют в виду люди, когда они пытаются повторно основывать dll, должно избежать хита перфекта устранять-взлетов, например, абсолютные адреса и вызовы функции должны быть "перемещены" с загруженным базовым адресом. CLR не имеет этой проблемы (не уверенный в статических данных в приложении, которое является второй частью тех устранять-взлетов, я должен был бы читать на этом), потому что код MSIL загружается по запросу, когда Вы вызываете функцию в управляемом коде. MSIL затем получает jitted и помещенный в "кучу", другую от "кучи" обычного объекта, которой я верю, таким же образом CLR выделяет и размечает новые объекты в Вашем приложении.
Что ОС Вы выполняете? Я знаю, что перспектива и вне представленного ASLR, который рандомизирует адресное пространство, в которое это загружает dlls. Это происходит для системы dlls, но не уверенное в .NET - возможно, что-то для изучения.